前言

学以致用,以学促用。输出检验,完整闭环。

怕什么真理无穷,进一寸有一寸的欢喜——胡适

经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了。
安装win10下tensforlow 可以参照之前的例子:win10+gpu安装
在使用gpu版本中一些特别的问题,可以参照这篇:win10+tensorflow+gpu
在运行过程中遇到的一些错误,可以参照这篇::tensorflow 错误
tensorflow的一些基础概念,可以参见这篇:tensorflow学习笔记(1)
tensorflow的发展故事,可以参见这篇:tensorfow学习笔记(2)

目录

  • 前言

    • Tensorflow 第一步
    • Tensorflow mnist数据集
    • 小结
    • 补充

Tensorflow 第一步

这节主要总结的是安装tensorflow和训练一个手写数字识别的模型。
安装可以参考这篇帖子:
win10:tensorflow-gpu总结

Tensorflow mnist数据集

数据集的介绍可参考之前的文档:经验
这节代码主要参考github上的源码
主要使用的算法是softmax regression算法。
soft regression简介
输入一张图片后,soft regression会对每个类别给出一个估计的概率,最后取概率最大的类别作为输出结果。
具体可以参照:softmax详解
简单公式如下:

featurei=∑jwi,jxj+bjfeaturei=∑jwi,jxj+bjfeature_i=\quad\sum_j{w_{i,j} x_j+b_j}
其中i代表第i类,j代表一张图片的第j个像素,bjbjb_j是bias,featureifeatureifeature_i第i类的概率

softmax(x)=normalize(exp(x))softmax(x)=normalize(exp(x))softmax(x)=normalize(exp(x))
其中softmax就是需要的特征。

softmax(x)i=fracexp(xi)∑jexp(xj)softmax(x)i=fracexp(xi)∑jexp(xj)softmax(x)_i=frac{exp(x_i)}{\quad\sum_jexp(x_j)}
特征值越大的类输出的概率越大:

公式化

额外写在这里:
交叉熵公式:
Hy′=−∑iy′ilog(yi)Hy′=−∑iyi′log(yi)H_{y'}=-\quad\sum_iy'_ilog(y_i)

>

#先导入依赖的库import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
#读入数据
#可能过段时间就不能这么简单的读取了。
#one-hot编码是说label的形式为【000001000】1在的位置代表它是几?
mnist=input_data.read_data_sets("MNIST_data/",one_hot=True)
#输出相关的信息
print(mnist.train.images.shape,mnist.train.labels.shape)
print(mnist.test.images.shape,mnist.test.labels.shape)
print(mnist.validation.images.shape,mnist.validation.labels.shape)#开启一个可迭代的会话
sess=tf.InteractiveSession()
#初始化参数。
#设置占位符和变量。
x=tf.placeholder(tf.float32,[None,784])
w=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10]))
#计算预测值
y=tf.nn.softmax(tf.matmul(x,w)+b)
#计算交叉熵
y_=tf.placeholder(tf.float32,[None,10])
cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))
#使用随机梯度求导优化
train_step=tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
#全局参数初始化。
tf.global_variables_initializer().run()
#迭代训练100次
for i in range(1000):
#获得训练集batch_xs,batch_ys=mnist.train.next_batch(100)#进行训练train_step.run({x:batch_xs,y_:batch_ys})
#预测结果判断
#实际标签和预测标签一致吗?
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
#计算正确率
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print(accuracy.eval({x:mnist.test.images,y_:mnist.test.labels}))

小结

通过这个例子,我们可以将一个项目结构化为四个独立的部分。

  • 1定义算法公式
  • 2定义loss,选定优化器,并指定优化器优化loss
  • 3迭代地对数据进行训练。
  • 4在测试集或验证集上对准确率进行评测。

    需要注意的是tensorflow和spark类似,一开始只是进行了计算图设计,真的计算要调用run方法后才开始,还需要feed数据。

补充

其中发现了一篇好文档,详解mnist数据集
详解,主要是可以可视化源数据究竟是个啥。
,但博主有的部分和我的部分有区别,问题怎么也解决不了:
问题1:数据导入

 X_train,y_train = load_mnist('mnist_data\')File "E:/tensorFlow/Mycode/mnist/Main_mnist.py", line 12X_train,y_train = load_mnist('mnist_data\')^
SyntaxError: EOL while scanning string literal

后来,发现应该这么写:

X_train,y_train = load_mnist('E:/tensorFlow/Mycode/mnist/mnist_data/') 

问题2:数据不识别

  File "E:\tensorFlow\Mycode\mnist\input_dat2.py", line 20, in load_mnistwith open(labels_path,'rb') as lbpath:PermissionError: [Errno 13] Permission denied: 'mnist_data/train-labels-idx1-ubyte'

先是参考了问题

仔细看了错误提示,发现是input_data环节出了问题:

博主的文档里面
-labels-idx1-ubyte将中间的-改成。以后问题消除。

展示出来了。

Win10: tensorflow 学习笔记(3)相关推荐

  1. Win10:tensorflow学习笔记(4)

    前言 学以致用,以学促用.输出检验,完整闭环. 经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了. 安装win10下tensforlow 可以参照之前的例子:w ...

  2. win10:tensorflow学习笔记(2)

    目录: 前言 Tensorflow的故事 1Tensorflow和其他框架的对比 2Tesorflow 目前进展 3大杀器tensorboard 尾声 前言 经过前段时间的努力,已经在电脑上搭好了深度 ...

  3. 【TensorFlow学习笔记】完美解决 pip3 install tensorflow 没有models库,读取PTB数据

    安装tensorflow 我使用的是最最最简单的容易的 pip3 install <TensorFlow学习笔记> 一. 安装win10下python3.6的tensorflow的CPU版 ...

  4. Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题

    Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 参考文章: (1)Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 (2)http ...

  5. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  6. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  7. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  8. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  9. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

最新文章

  1. Vue(十)生命周期
  2. 计数排序/Counting Sort
  3. ca开头的车是什么牌子_动车与高铁的区别是什么?很少人知道!让我来告诉你吧...
  4. python无法识别vim中文代码
  5. CodeForces-500C
  6. JAVA笔记(十四)
  7. 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
  8. 【TensorFlow】TensorFlow函数精讲之tf.clip_by_value()
  9. RedHat中敲sh-copy-id命令报错:-bash: ssh-copy-id: command not found
  10. Evernote 强力替代品:开源加密笔记本 Joplin
  11. 阿里云眼中的“云网络3.0”:构建应用、云、边一体网络
  12. linux hotplug 机制,佐须之男的博客- 跟着佐大学Lede/OpenWrt开发入门培训班讲义-18 OpenWrt hotplug 机制分析...
  13. 寻找“最好”(2)——欧拉-拉格朗日方程
  14. 服务器怎么改成gpt分区支持,硬盘mbr分区更改成gpt分区的方法
  15. 怎样写一个解释器——王垠
  16. 程序的时间和空间复杂度
  17. 【python爬虫】scrapy框架案例实现数据保存入MySQL
  18. js数据过滤算法搭建
  19. 如何在论文中添加参考文献引用(以Word2016为例)
  20. 翻译器附属文件下载地址

热门文章

  1. PEEL!!!!!!!! it is the easiest way for English arguments
  2. Changes at Different Environment?
  3. my understanding for love
  4. 强弩之末,势不能穿鲁缟
  5. SHADER效果收集
  6. LeetCode7.整数反转 JavaScript
  7. jst获取不到springmvc中model数据
  8. 极路由安全设计架构分析
  9. Sweet.js 用 Readtables 编译 JSX
  10. 不能导入android项目备注