引言 最近自学GRU神经网络,感觉真的不简单.为了能够快速跑完程序,给我的渣渣笔记本(GT650M)也安装了一个GPU版的tensorflow.顺便也更新了版本到了tensorflow-gpu 1.7.之前相关的程序代码依然兼容,可以运行.刚好遇到五一假期,一个人在实验室发霉,就顺便随手做了一下MNIST手写体数字的BP神经网络识别程序.做的比较简单,日后可能会扩充这一篇随笔,所以大概算是个草稿版. 正文 MNIST数据准备 MNIST手写体数字识别,在人工智能中的地位有点像’hello wor…
引言 从本周,我将开始tensorflow的学习.手头只有一本<tensorflow:实战Google深度学习框架>,这本书对于tensorflow的入门有一定帮助.tensorflow中文社区中的翻译的谷歌官方教程十分详细,是自学tensorflow的好帮手,当然如果是英文熟手可以直接看谷歌官方给出的原版教程(博主英语是靠谷歌翻译和百度翻译救活的). 本篇博客主要讲述机器学习的发展过程,以及BP神经网络的主要内容.不涉及tensorflow的编程.具体BP神经网络tensorflow的实现将…
引言 在上一篇博客中,介绍了各种Python的第三方库的安装,本周将要使用Tensorflow完成第一个神经网络,BP神经网络的编写.由于之前已经介绍过了BP神经网络的内部结构,本文将直接介绍Tensorflow编程常用的一些方法. 正文 神经网络的内容 一般,一个神经网络程序包含以下几部分内容. 1.数据表达和特征提取.对于一个非深度学习神经网络,主要影响其模型准确度的因素就是数据表达和特征提取.同样的一组数据,在欧式空间和非欧空间,就会有着不同的分布.有时候换一种思考问题的思路就会使得问题变…
最近一直在学习李宏毅老师的机器学习视频教程,学到和神经网络那一块知识的时候,我觉得单纯的学习理论知识过于枯燥,就想着自己动手实现一些简单的Demo,毕竟实践是检验真理的唯一标准!!!但是网上很多的与tensorflow或者神经网络相关的Demo教程都只是在验证官方程序的过程,而如何把这些程序变成自己可以真正利用的程序这一块的资料就比较少,就好比被“玩烂的"MNIST数据集(ML界的”hello world"),网上是有很多手写数字识别的教程,但那些利用的都是官方提供的数据集,这样就算验…
Tensorflow是当下AI热潮下,最为受欢迎的开源框架.无论是从Github上的fork数量还是star数量,还是从支持的语音,开发资料,社区活跃度等多方面,他当之为superstar. 在前面介绍了如何搭建Tensorflow的运行环境后(包括CPU和GPU的),今天就从MNIST手写识别的源码上分析一下,tensorflow的工作原理,重点是介绍CNN的一些基本理论,作为扫盲入门,也作为自己的handbook吧. Architecture 首先,简单的说下,tensorflow的基本架构…
一.任务:采用基本的LSTM识别MNIST图片,将其分类成10个数字. 为了使用RNN来分类图片,将每张图片的行看成一个像素序列,因为MNIST图片的大小是28*28像素,所以我们把每一个图像样本看成一行行的序列.因此,共有(28个元素的序列)×(28行),然后每一步输入的序列长度是28,输入的步数是28步. 二.LSTM模型: 输入:x(t-1)的大小为一个28维的向量.……x(t-1),x(t).x(t+1)……有28个.[将一张图片拆成28*28] 隐藏层大小:128 输出:10 U:28…
#!/usr/bin/env python3 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True) import tensorflow as tf sess = tf.InteractiveSession() x = tf.placeholder(tf.float32, shape=[None, 784]) y…
一.AlexNet:共8层:5个卷积层(卷积+池化).3个全连接层,输出到softmax层,产生分类. 论文中lrn层推荐的参数:depth_radius = 4,bias = 1.0 , alpha = 0.001 / 9.0 , beta = 0.75 lrn现在仅在AlexNet中使用,主要是别的卷积神经网络模型效果不明显.而LRN在AlexNet中会让前向和后向速度下降,(下降1/3). [训练时耗时是预测的3倍] 代码: #加载数据 import tensorflow as tf fr…
一.卷积神经网络的简述 卷积神经网络将一个图像变窄变长.原本[长和宽较大,高较小]变成[长和宽较小,高增加] 卷积过程需要用到卷积核[二维的滑动窗口][过滤器],每个卷积核由n*m(长*宽)个小格组成,每个小格都有自己的权重值, 长宽变窄:过滤器的长宽决定的 高度变高:过滤器的个数决定的 输入:55000 × 784 = 28*28 输出:55000 × 10 lenet:两层卷积层(卷积层 + 池化层).两层全连接层 二.代码: 1.数据集: 下载好Mnist数据集加压到文件夹'MNIST_d…
''' 神经网络的过程:1.准备相应的数据库 2.定义输入成 3.定义输出层 4.定义隐藏层 5.训练(根据误差进行训练) 6.对结果进行精确度评估 ''' import tensorflow as tf #首先准备数据库from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True) '''这里面的数据不仅仅有图像的像素,…