mnist

softmax和分类模型

你说的曾经没有我的故事 提交于 2020-02-14 20:47:16
softmax和分类模型 内容包含: softmax回归的基本概念 如何获取Fashion-MNIST数据集和读取数据 softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集中的图像数据进行分类的模型 使用pytorch重新实现softmax回归模型 softmax的基本概念 分类问题 一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度。 图像中的4像素分别记为 \(x_1, x_2, x_3, x_4\) 。 假设真实标签为狗、猫或者鸡,这些标签对应的离散值为 \(y_1, y_2, y_3\) 。 我们通常使用离散的数值来表示类别,例如 \(y_1=1, y_2=2, y_3=3\) 。 权重矢量 \[ \begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{21} + x_3 w_{31} + x_4 w_{41} + b_1 \end{aligned} \] \[ \begin{aligned} o_2 &= x_1 w_{12} + x_2 w_{22} + x_3 w_{32} + x_4 w_{42} + b_2 \end{aligned} \] \[ \begin{aligned} o_3 &= x_1 w_{13} + x_2 w_{23} + x_3 w_{33} + x_4 w_{43} +

动手深度学习task2——softmax

假如想象 提交于 2020-02-14 20:22:05
softmax与分类模型 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXrlQNpD-1581673070121)(attachment:image.png)] torchvision包主要用来构建计算机视觉模型。 1.torchvision.datasets: 一些加载数据的函数及常用的数据集接口 2.torchvision.models:包含常用的模型结构(包括预训练模型),例如AlexNet、VGG、ResNet等 3.torchvision.transforms:常见的图片变换,例如裁剪、旋转等 4.torchvision.utils:其他的一些有用的方法 # 获取数据集 import torch import torchvision import torchvision . transforms as transforms import matplotlib . pyplot as plt import time import sys sys . path . append ( ".." ) 获取Fashion-MNIST训练集和读取数据 我们通过torchvision的torchvision.datasets来下载这个数据集。第一次调用时会自动从网上获取数据。我们通过参数train来指定获取训练数据集或测试数据集。

简单的手写数字识别

谁说我不能喝 提交于 2020-02-12 16:58:08
个人笔记 感谢指正 手写数字识别 参考链接:https://blog.csdn.net/qq_32241189/article/details/80450741 1.导入包 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data 2.导入数据集 mnist = input_data.read_data_sets('MNIST_data',one_hot=True) #read_data_sets函数是专门下载MNIST数据集的,注意这里注意这里是one_hot,即标签不是一个值而是一个向量 #数据集分为train,validation,test三个数据集: 1.返回数据集train样本数 mnist.train.num_examples 2.返回数据集validation样本数 mnist.validation.num_examples 3.返回数据集test样本数 mnist.test.num_examples 4.使用mnist.train.images返回train数据集中的所有图片的像素值 5.使用mnist.train.labels返回train数据集中的所有图片的标签 6.使用mnist.train.next_batch()将数据输入神经网络 3.定义批次的大小

百度PaddlePaddle入门-11(网络结构)

萝らか妹 提交于 2020-02-10 18:41:41
前面使用与房价预测相同的简单神经网络解决手写数字识别问题,效果并不理想,原因有两点: 输入数据类型不同。房价预测的输入为离散一维数据。 房价预测使用全连接神经网络无法学习到图像二维数据中的空间信息 。 模型复杂度不够。因为手写数字识别任务涉及到图像信号,比房价预测任务更加复杂,模型的复杂度也会影响最终的效果,理论上复杂的模型能够表示更复杂的转换关系(从输入到输出)。 本节介绍两种常见的网络结构,全连接神经网络和卷积神经网络,观测卷积网络能否提升手写数字识别的训练效果。 在开始介绍网络结构前,复用上一节的数据处理代码,代码如下。 1 #数据处理部分之前的代码,保持不变 2 import os 3 import random 4 import paddle 5 import paddle.fluid as fluid 6 from paddle.fluid.dygraph.nn import Conv2D, Pool2D, FC 7 import numpy as np 8 import matplotlib.pyplot as plt 9 from PIL import Image 10 11 import gzip 12 import json 13 14 # 定义数据集读取器 15 def load_data(mode='train'): 16 17 # 数据文件 18

ML - 数据集(Datasets)

≡放荡痞女 提交于 2020-02-10 03:28:03
一些常见的入门数据集 MNIST MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集。 官方下载地址: http://yann.lecun.com/exdb/mnist/ 包含70000张手写数字的灰度图片,其中60000张为训练图像和10000张为测试图像; 每一张图片都是28*28个像素点大小的灰度图像; MNIST数据集分为四个部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本) Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签) Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本) Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签) Fashion MNIST数据集 经典 MNIST 数据集(常用作计算机视觉机器学习程序的“Hello,

人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist)

大憨熊 提交于 2020-02-07 04:20:08
人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist),使用技术(Django+js+tensorflow+html+bootstrap+inspinia框架) 直接上图,项目效果 1.训练模型 项目结构 运用tensorflow 70行代码即可搞定训练,首先大家需要下载mnist的数据集 大家可自行百度,形式如下 创建 mnist_train.py 文件 导入代码 # - * - coding : utf - 8 - * - import tensorflow as tf from tensorflow . examples . tutorials . mnist import input_data learning_rate = 0.001 TRAINING_STEPS = 100000 BATCH_SIZE = 32 def conv_layer ( input , in_channel , out_channel ) : # 定义卷积层 w = tf . Variable ( tf . truncated_normal ( [ 5 , 5 , in_channel , out_channel ] , stddev = 0.1 ) ) #生成一个 5 x5的矩阵 b = tf . Variable ( tf . constant ( 0.1 , shape =

Keras安装与测试遇到的坑

一个人想着一个人 提交于 2020-02-06 12:04:17
Keras是基于python的深度学习库 Keras是一个高层神经网络API,Keras由纯Python编写而成并基 Tensorflow 、 Theano 以及 CNTK 后端。 安装步骤及遇到的坑: (1)安装tensorflow:CMD命令行输入 pip install - - upgrade tensorflow (2)安装Keras:pip install keras -U --pre (3)验证tensorflow   jupyter notebook或者spyder输入以下代码:   import tensorflow as tf   hello = tf.constant(“hello,tensorflow”)   sess = tf.Session()   print(sess.run(hello))   能显示“hello,tensorflow”则表示安装成功 (4)验证keras,   使用Keras中mnist数据集测试 下载Keras开发包,命令行输入以下命令   >>> conda install git #安装git工具   >>> git clone https://github.com/fchollet/keras.git #下载keras工程内容   >>> cd keras/examples/ #进入测试代码所在路径   >>> python

MNIST data set neural network, why is the network failing to classify images?

我是研究僧i 提交于 2020-02-05 06:29:12
问题 my neural network is failing at the training set and every iteration at gradient descent is decreasing the error, but the hypothesis vector values are decreasing each time. When I run the test set on the learned parameters, the network just outputs 1 as its guess for every image. So far, i've tried removing the sigmoid activation from the output, checked the gradients with gradient checking, and i've tried to put the dataset between the values 0-1. Heres an example of the hypothesis during

MNIST机器学习入门

冷暖自知 提交于 2020-01-31 23:10:03
"python: 3.5" # -*- coding: utf-8 -*- """ Created on Tue Oct 16 15:29:38 2018 @author: Administrator """ import tensorflow as tf "引入input_data.py,注:Python文件必须与input_data.py在同一文件夹下" from tensorflow.examples.tutorials.mnist import input_data def myprint(v): print(v) print(type(v)) try: print(v.shape) except: try: print(len(v)) except: pass if __name__ == '__main__': mnist = input_data.read_data_sets('./input_data', one_hot=True, validation_size=100) myprint(mnist.train.labels) myprint(mnist.validation.labels) myprint(mnist.test.labels) myprint(mnist.train.images) myprint(mnist.validation.images)

误差反向传播法版 对MNIST数据集的二层神经网络的学习实现

不打扰是莪最后的温柔 提交于 2020-01-31 21:39:11
# 1.神经网络的学习前提和步骤 前提 神经网络存在合适的权重和偏置。 步骤一(挑选mini-batch) 从训练数据中随机选出一部分数据,这部分数据称为mini-batch。 我们的目标是减少mini-batch这部分数据的损失函数的值。 步骤二(计算梯度) 为了减小mini-batch这部分数据的损失函数的值,需要求出有关各个权重参数的梯度。 步骤三(更新参数) 将权重参数沿梯度方向进行微小更新。 步骤四(重复) 重复步骤1,2,3 # 2.二层神经网络类的实现 同数值微分版的实现不同,这里的二层神经网络类运用上篇博客介绍的各种计算层(下图中的黑色方框)来进行实现。 下面是二层神经网络的计算图 其中利用计算图的正向传播和反向传播高效求梯度的方法,是最为重要的。 下面是二层神经网络类TwoLayerNet的具体实现代码 import sys,os sys.path.append(os.pardir) import numpy as np from layers import * # 导入加权和层类Affine和激活函数层类ReLU from collections import OrderedDict # 导入有序字典类OrderedDict # 应用误差反向传播法的二层神经网络类TwoLayerNet的实现 class TwoLayerNet: def __init__