【发布时间】:2019-08-22 16:50:01
【问题描述】:
我正在研究深度学习,我想我迷失在 cnn 中。让我解释一下:通过关注Aurélien Géron's github(在单元格 [21] 中),我训练了“我的基本”MNIST。一切都很顺利......我想...... ^^......我也使用了他的初始化......:
....
8 上批精度:1.0 测试精度:0.9852,
9 上批准确率:1.0 测试准确率:0.9892,
然而,在同一作者的书中,它指定:“......一旦 CNN 学会在一个位置识别一种模式,它就可以在任何其他位置识别它......”(第 358 页) .这是否意味着如果我的网络检测到 99% 的数字,我就可以将它移动到它识别的任何地方?我问这个,因为它不起作用。预测非常糟糕,即在 28x28 图像上 100% 检测到“4”:
...
3 : 0.0 %
4 : 100.0 %
5 : 0.0 %
...
在同一张图像上,我移动了几个像素的形状(用油漆,对于那些想知道如何的人):
0 : 20.0 %
1 : 21.0 %
2 : 2.0 %
3 : 0.0 %
4 : 22.0 %
5 : 14.0 %
6 : 0.0 %
7 : 21.0 %
8 : 1.0 %
9 : 0.0 %
我真的理解 cnn 的概念吗?
此外,如果我将“4”和“2”并排放置,为什么它不起作用?
网络不应该 100% 告诉我吗?
我的import_graph 代码:
saver = tf.train.import_meta_graph("./my_mnist_model.meta")
X_prod = snt_X_prod.astype(np.float32).reshape(-1, 28*28) / 255.0
sess = tf.Session()
saver.restore(sess, "./my_mnist_model")
result = sess.run("output/Y_proba:0", feed_dict={"inputs/X:0": X_prod})
【问题讨论】:
标签: python tensorflow conv-neural-network mnist