可重用的Tensorflow卷积网络

用户名

我想重用Tensorflow“ MNIST for Pros” CNN示例中的代码我的图像是388px X 191px,只有2个输出类别。原始代码可以在这里找到我试图通过仅更改输入和输出层来重用此代码,如下所示:

输入层

x = tf.placeholder("float", shape=[None, 74108])

y_ = tf.placeholder("float", shape=[None, 2])

x_image = tf.reshape(x, [-1,388,191,1])

输出层

W_fc2 = weight_variable([1024, 2])

b_fc2 = bias_variable([2])

运行修改后的代码会产生模糊的堆栈跟踪:

W tensorflow/core/common_runtime/executor.cc:1027] 0x2136510 Compute status: Invalid argument: Input has 14005248 values, which isn't divisible by 3136
     [[Node: Reshape_4 = Reshape[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](MaxPool_5, Reshape_4/shape)]]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1267, in run
    _run_using_default_session(self, feed_dict, self.graph, session)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2763, in _run_using_default_session
    session.run(operation, feed_dict)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 345, in run
    results = self._do_run(target_list, unique_fetch_targets, feed_dict_string)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 419, in _do_run
    e.code)
tensorflow.python.framework.errors.InvalidArgumentError: Input has 14005248 values, which isn't divisible by 3136
     [[Node: Reshape_4 = Reshape[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](MaxPool_5, Reshape_4/shape)]]
Caused by op u'Reshape_4', defined at:
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 554, in reshape
    name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 633, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1710, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 988, in __init__
    self._traceback = _extract_stack()
dga
tensorflow.python.framework.errors.InvalidArgumentError: Input has 14005248 values, which isn't divisible by 3136
 [[Node: Reshape_4 = Reshape[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](MaxPool_5, Reshape_4/shape)]]

但是您执行它的方式使您无法看到导致问题的实际行。将其保存到文件中并进行python<file>处理。

  File "<stdin>", line 1, in <module>

但是答案是您没有更改卷积和池化图层的大小,因此当您过去运行28x28图像时,它们最终会缩小为7x7x(convolutional_depth)层。现在您正在运行巨大的图像,因此在第一个卷积层和2x2 maxpool之后,您将尝试引入非常大的东西,但是您将重塑为:

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

W_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])

使用较大的图像,h_pool2的输出会大得多。您需要将它们缩小得更多-可能需要更多的卷积和maxpooling层。您也可以尝试增加W_fc1的大小以匹配到达那里的输入大小。它通过两个2x2 maxpool运行-每个x和y尺寸将尺寸缩小2。28x28x1-> 14x14x32-> 7x7x64。因此您的图像尺寸从388 x 191-> 194 x 95-> 97 x 47

作为警告,输入为97 * 47 = 4559的完全连接的层在冰川上会很慢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TensorFlow卷积神经网络教程

来自分类Dev

TensorFlow卷积神经网络教程

来自分类Dev

TensorFlow:卷积网络中的尺寸不兼容错误

来自分类Dev

为什么对卷积神经网络给出张量维数?-TensorFlow

来自分类Dev

在 tensorflow gpu 中训练卷积神经网络时“Python 已停止工作”

来自分类Dev

TensorFlow与PyTorch卷积混淆

来自分类Dev

TensorFlow 卷积代码优化

来自分类Dev

卷积深度信念网络(CDBN)与卷积神经网络(CNN)

来自分类Dev

组合卷积神经网络

来自分类Dev

难以理解全卷积网络

来自分类Dev

mnist 卷积网络精度不好

来自分类Dev

卷积神经网络损失

来自分类Dev

深度信念网络与卷积神经网络

来自分类Dev

重用神经网络

来自分类Dev

Tensorflow卷积神经网络-使用小数据集进行训练,将随机变化应用于图像

来自分类Dev

AttributeError:尝试在python中使用tensorflow实现卷积神经网络程序时,'dict'对象没有属性'train'错误

来自分类Dev

tensorflow 卷积结果到 numpy

来自分类Dev

如何处理卷积/卷积网络中的边界?

来自分类Dev

iOS可重用组件

来自分类Dev

类的可重用代码

来自分类Dev

可重用的搜索方法

来自分类Dev

OptionalInt可重用吗?

来自分类Dev

可重用的对象文字

来自分类Dev

可重用的表达

来自分类Dev

可重用的搜索方法

来自分类Dev

可重用的CustomControl模板

来自分类Dev

可重用的 Angularjs 代码

来自分类Dev

使我的功能可重用

来自分类Dev

Laravel 可重用的函数