MNIST手写字体识别入门编译过程遇到的问题及解决
以MNIST手写字体识别作为神经网络及各种网络模型的作为练手,将遇到的问题在这里记录与交流。
激活tensorflow环境后,运行spyder或者jupyter notebook.
- 环境问题
import tensorflow时不时的会出现问题,目前多来源于numpy,解决方案:卸载numpy后重装
$ pip uninstall numpy
$ pip install -U numpy
一般这之后再重新import就可以了
- 运行报错debug
(1) tensorflow中的会话
% with tf.Session() as sess:
sess.run()
需要运行的需要在该句后缩进,否则会出现会话终止的报错
(2) 导入mnist数据,以下两句都可以试试,有时候某个就会报错(不知道原因,求大神指点)
% import input_data
% from tensorflow.examples.tutorials.mnist import input_data
(3) 导入matplotlib用于绘图
刚开始 使用 import matplotlib.pyplot as plt,会报错
查阅调试后使用下句
% from matplotlib import pyplot as plt
(4) feed数据的问题
运行到这一句(或者类似语句)
% conv2_np=sess.run(h_conv2,feed_dict={x:input_slice,keep_prob:1.0})
运行报错:Cannot feed value of shape (784,) for Tensor ‘Placeholder_41:0’, which has shape ‘(?, 784)’
将input_slice加个中括号,即 x:[input_slice],问题解决!
注意在这里,kee_prob,如果前面训练中有dropout则需要加入
不定时更新