mnist

pytorch基础(二)

孤街醉人 提交于 2020-01-30 19:41:18
目录 An easy way Save and reload Train on batch Optimizers CNN An easy way 使用 torch.nn.Sequential() 来更快地构建神经网络: import torch import torch.nn.functional as F # replace following class code with an easy sequential network class Net(torch.nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() self.hidden = torch.nn.Linear(n_feature, n_hidden) # hidden layer self.predict = torch.nn.Linear(n_hidden, n_output) # output layer def forward(self, x): x = F.relu(self.hidden(x)) # activation function for hidden layer x = self.predict(x) # linear output return x net1 = Net

pytorch学习笔记(四)——MNIST数据集实战

删除回忆录丶 提交于 2020-01-30 19:04:53
pytorch入门之MINIST数据集实战 目录 神经网络运作流程 回顾 识别的四个步骤 实现代码 目录 神经网络运作流程 上图所示是一个简单的二层神经网络结构,猫和狗的图片作为输入,依次是输入层,隐层,输出层。每张图片作为输入经过模型得到输出判别是猫还是狗,将输入与真实值之间求误差,再对误差求梯度优化参数w和b,使最后得到的误差尽可能小。 回顾 上一个博客中我们讲到,我们将输入X经过一个线性模型得再通过ReLU激活函数得到H1,在经过一次ReLU得到H2,最后一层通常并不使用ReLU激活函数,常见的有sigmoid,softmax的函数,这里我们直接通过一个线性模型得到H3,即为最终的预测输出。 识别的四个步骤 1.首先通过pytorch自带函数完成minist数据集的下载,解析,读取图片 2.建立如上图所示的三层非线性模型 3.输入训练集完成参数的优化 4.输入测试集对训练好的模型进行评估 实现代码 辅助代码utils.py import torch from matplotlib import pyplot as plt def plot_curve ( data ) : #绘制曲线 fig = plt . figure ( ) #创建一个图片 plt . plot ( range ( len ( data ) ) , data , color = 'blue' )

Python不调包实现逻辑回归和自动求导

大兔子大兔子 提交于 2020-01-30 08:13:26
导言 逻辑回归是机器学习中最基础也最常用的模型 一句话介绍LR: 逻辑回归假设 数据服从伯努利分布 ,通过 极大化似然函数 的方法,运用 梯度下降 来求解参数,来达到将数据 二分类 的目的。 LR具体的推导可以参考李航老师的统计学习方法 为什么LR损失函数不选MSE,而采用极大似然估计(即交叉熵损失) 参考: https://www.cnblogs.com/smartwhite/p/9109815.html 对于线性回归,我们会选择MSE, 因为其J(θ)是凸函数 但是对于logistic回归,由于进行了sigmoid非线性映射就是 非凸函数 ,所以可能在寻优的时候 容易陷入局部最优 所以 考虑把sigmoid作log ,对其求二阶导,结果大于0,说明其是凸函数,在用梯度下降法寻优时,可以保证找到全局最小。 TensorFlow实现 使用mnist数据集验证模型的有效性 import tensorflow as tf import os from tensorflow . examples . tutorials . mnist import input_data os . environ [ 'CUDA_VISIBLE_DEVICES' ] = '0' lr = 0.001 n_epoch = 25 batch_size = 64 def LR ( ) : x = tf .

百度飞浆深度学习(二)

吃可爱长大的小学妹 提交于 2020-01-30 07:13:15
目录 1.深度学习发展历程 1.1图灵测试 1.2分级处理信息 1.3深度学习 2.机器学习 2.1范畴 2.2分类 3.神经网络 3.1初识神经网络 3.2神经网络实例-paddle学习手写数字分类 第一步:准备数据 第二步:定义神经网络-卷积神经网络LeNet-5 第三步:初始化paddle 第四步:获取训练器 第五步:开始训练 1.深度学习发展历程 1.1图灵测试 图灵测试由艾伦·麦席森·图灵发明,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。图灵测试一词来源于计算机科学和密码学的先驱艾伦·麦席森·图灵写于1950年的一篇论文《计算机器与智能》,其中30%是图灵对2000年时的机器思考能力的一个预测,目前我们已远远落后于这个预测。 1.2分级处理信息 大脑认知:1.边缘特征 2.基本形状和目标的局部特征 3.整个目标 高层的特征是低层特征的组合,从低层到高层的特征表达越来越抽象和概念化,也即越来越能表现语义或者意图。从视网膜出发,经过低级的V1区提取边缘特征,到V2区的基本形状或目标的局部,再到高层的整个目标(如判定为一张人脸),以及到更高层的PFC(前额叶皮层)进行分类判断等。 如下为人脑神经元作用示意图: 1

MNIST数据集手写数字分类

岁酱吖の 提交于 2020-01-28 09:58:38
目录 0.编程环境 1、下载并解压数据集 2、完整代码 3、数据准备 4、数据观察 4.1 查看变量mnist的方法和属性 4.2 对比三个集合 4.3 mnist.train.images观察 4.4 查看手写数字图 5、搭建神经网络 6、变量初始化 7、模型训练 9、模型测试 MNIST是Mixed National Institue of Standards and Technology database的简称,中文叫做 美国国家标准与技术研究所数据库 。 0.编程环境 安装tensorflow命令: pip install tensorflow 操作系统:Win10 python版本:3.6 集成开发环境:jupyter notebook tensorflow版本:1.6 1、下载并解压数据集 MNIST数据集下载链接: https://pan.baidu.com/s/1fPbgMqsEvk2WyM9hy5Em6w 密码: wa9p 下载压缩文件MNIST_data.rar完成后,选择 解压到当前文件夹 , 不要选择 解压到MNIST_data。 文件夹结构如下图所示: 2、完整代码 此章给读者能够直接运行的完整代码,使读者有编程结果的感性认识。 如果下面一段代码运行成功,则说明安装tensorflow环境成功。 想要了解代码的具体实现细节,请阅读后面的章节。 import

tensorflow数据集加载

自作多情 提交于 2020-01-26 20:08:55
本篇涉及的内容主要有小型常用的经典数据集的加载步骤,tensorflow提供了如下接口:keras.datasets、tf.data.Dataset.from_tensor_slices(shuffle、map、batch、repeat),涉及的数据集如下:boston housing、mnist/fashion mnist、cifar10/100、imdb 1.keras.datasets 通过该接口可以直接下载指定数据集。boston housing提供了和房价有关的一些因子(面积、居民来源等),mnist提供了手写数字的图片和对应label,fashion mnist提供了10种衣服的灰度图和对应label,cifar10/100是用来进行简单图像识别的数据集,分别包含10类物品和100类物品,imdb是一个类似于淘宝好评的数据集,即通过评语及其标注(好评或差评),来实现一个好评或差评的分类器。 注:通过该接口得到的数据集格式为numpy格式。 2.tf.data.Dataset.from_tensor_slices() 该方法可以用来进行数据的迭代,过程中可以直接将numpy格式转化为tensor格式,然后通过调用next(iter())方法实现迭代,使用示例如下: # 加载数据集 (x,y),(x_test,y_test) = keras.datasets.mnist

人工智能实践:Tensorflow笔记 # 8 全连接神经网络实践 (手写数字识别)

这一生的挚爱 提交于 2020-01-25 20:51:21
mnist_forward.py import tensorflow as tf INPUT_NODE = 784 OUTPUT_NODE = 10 LAYER1_NODE = 500 def get_weight ( shape , regularizer ) : w = tf . Variable ( tf . truncated_normal ( shape , stddev = 0.1 ) ) if regularizer != None : tf . add_to_collection ( 'losses' , tf . contrib . layers . l2_regularizer ( regularizer ) ( w ) ) return w def get_bias ( shape ) : b = tf . Variable ( tf . zeros ( shape ) ) return b def forward ( x , regularizer ) : w1 = get_weight ( [ INPUT_NODE , LAYER1_NODE ] , regularizer ) b1 = get_bias ( [ LAYER1_NODE ] ) y1 = tf . nn . relu ( tf . matmul ( x , w1 ) + b1 ) w2 =

Tensorflw快速入门——运用逻辑回归算法手写数字识别

谁说我不能喝 提交于 2020-01-25 05:31:34
Tensorflw快速入门二 手写数字识别 运用逻辑回归算法对手写数字进行识别 上篇博文我们用tensorflow实现了线性回归 Tensorflow快速入门——线性回归 今天我们运用逻辑回归算法对手写数字进行识别 本文具体数据集与源代码可从我的GitHub地址获取 https://github.com/liuzuoping/Deep_Learning_note MNIST 数据集简介 手写数字识别也是比较常见的例子了,这个数据集包含有60000张用于训练的手写数字的图片,10000张用于测试的图片,所有图片的尺寸都已经被标准化了,并且,尺寸为28 * 28,每个像素值0~1区间内的值,其中0代表白色,1代表黑色,区间内的值表示灰色。为了简化,每张图片已经被转换成一个1 728的一维数组,表示784个特征(28 28)。 数据集下载: http://yann.lecun.com/exdb/mnist/ 加载mnist数据集 import tensorflow as tf from tensorflow . examples . tutorials . mnist import input_data mnist = input_data . read_data_sets ( "/tmp/data/" , one_hot = True ) print ( mnist ) 设置参数

Tensorflow: assign multiple variable values in single run without recomputation of other expressions

拜拜、爱过 提交于 2020-01-24 12:15:28
问题 I'm new to Tensorflow, and I'm sorry, because this seems to be a very basic question, but unfortunately I can't find anything on Google, maybe I'm using wrong keywords. I have some expressions derived from placeholders (as far as I understand the logic of tensorflow), and a few variables that need to be evaluated without recomputing "placeholdered" expressions. Below is my quite ugly code (which is supposed to be manually constructed 3-layer neural network) where evaluation happens in a loop.

永兴的tensorflow笔记-9 全连接MNIST初体验(手写字识别)

六眼飞鱼酱① 提交于 2020-01-24 04:21:05
一、什么是全联接神经网络? 全连接神经网络(fully connected neural network),顾名思义,就是相邻两层之间任意两个节点之间都有连接。全连接神经网络是最为普通的一种模型(比如和CNN相比),由于是全连接,所以会有更多的权重值和连接,因此也意味着占用更多的内存和计算。 全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。 二、什么是MNIST? MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片: 它也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是5,0,4,1。 我们将训练一个机器学习模型用于预测图片里面的数字。所以,我们这里会从一个很简单的数学模型开始,它叫做Softmax Regression。 三、MNIST数据集获取: 1、下载数据集: MNIST数据集的官网是: 点击打开 下载下来的数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。这样的切分很重要,在机器学习模型设计时必须有一个单独的测试数据集不用于训练而是用来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上(泛化)。 正如前面提到的一样,每一个MNIST数据单元有两部分组成