小编Dev*_*lam的帖子

Tensorflow CNN训练图像都是不同的大小

我创建了一个深度卷积神经网络来对图像中的各个像素进行分类.我的训练数据总是相同的大小(32x32x7),但我的测试数据可以是任何大小.

Github存储库

目前,我的模型只适用于相同大小的图像.我已经广泛使用了tensorflow mnist 教程来帮助我构建我的模型.在本教程中,我们仅使用28x28图像.如何更改以下mnist模型以接受任何大小的图像?

 x = tf.placeholder(tf.float32, shape=[None, 784])
 y_ = tf.placeholder(tf.float32, shape=[None, 10])
 W = tf.Variable(tf.zeros([784,10]))
 b = tf.Variable(tf.zeros([10]))
 x_image = tf.reshape(x, [-1, 28, 28, 1])
Run Code Online (Sandbox Code Playgroud)

为了使事情变得更复杂,我的模型已经转置了需要指定输出形状的卷积.如何调整以下代码行,以便转置卷积将输出与输入大小相同的形状.

  DeConnv1 = tf.nn.conv3d_transpose(layer1, filter = w, output_shape = [1,32,32,7,1], strides = [1,2,2,2,1], padding = 'SAME')     
Run Code Online (Sandbox Code Playgroud)

python deep-learning conv-neural-network tensorflow deconvolution

12
推荐指数
1
解决办法
5624
查看次数

具有不同尺寸图像的张量流卷积神经网络

我正在尝试创建一个可以对图像中的每个像素进行分类的深度CNN.我复制从图像架构下面取自这个文件.在论文中提到使用去卷积使得任何大小的输入都是可能的.这可以在下图中看到.

Github存储库

在此输入图像描述

目前,我已经硬编码我的模型接受大小为32x32x7的图像,但我想接受任何大小的输入.我需要对我的代码进行哪些更改以接受可变大小的输入?

 x = tf.placeholder(tf.float32, shape=[None, 32*32*7])
 y_ = tf.placeholder(tf.float32, shape=[None, 32*32*7, 3])
 ...
 DeConnv1 = tf.nn.conv3d_transpose(layer1, filter = w, output_shape = [1,32,32,7,1], strides = [1,2,2,2,1], padding = 'SAME')
 ...
 final = tf.reshape(final, [1, 32*32*7])
 W_final = weight_variable([32*32*7,32*32*7,3])
 b_final = bias_variable([32*32*7,3])
 final_conv = tf.tensordot(final, W_final, axes=[[1], [1]]) + b_final
Run Code Online (Sandbox Code Playgroud)

python deep-learning conv-neural-network tensorflow deconvolution

10
推荐指数
1
解决办法
3079
查看次数

交叉熵损失突然增加到无穷大

我试图从一篇研究论文中复制一个深度卷积神经网络。我已经实现了这个架构,但是在 10 个 epoch 之后,我的交叉熵损失突然增加到无穷大。这可以在下面的图表中看到。您可以忽略问题发生后准确性发生的情况。

是带有架构图片的github存储库

在做了一些研究之后,我认为使用 AdamOptimizer 或 relu 可能是一个问题。

x = tf.placeholder(tf.float32, shape=[None, 7168])
y_ = tf.placeholder(tf.float32, shape=[None, 7168, 3])

#Many Convolutions and Relus omitted

final = tf.reshape(final, [-1, 7168])
keep_prob = tf.placeholder(tf.float32)
W_final = weight_variable([7168,7168,3])
b_final = bias_variable([7168,3])
final_conv = tf.tensordot(final, W_final, axes=[[1], [1]]) + b_final

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=final_conv))
train_step = tf.train.AdamOptimizer(1e-5).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(final_conv, 2), tf.argmax(y_, 2))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
Run Code Online (Sandbox Code Playgroud)

编辑 如果有人感兴趣,解决方案是我基本上输入了不正确的数据。

python machine-learning deep-learning conv-neural-network tensorflow

7
推荐指数
1
解决办法
7602
查看次数

Tensorflow错误:"无法解析proto的张量"

我正在创建一个带有tensorflow的深度CNN.我已经创建了这个架构,现在我正处于培训过程中.当我开始训练模型时,我使用命令:

sess.run(tf.global_variables_initializer())
Run Code Online (Sandbox Code Playgroud)

调用此命令时,我收到下面的错误.我的直觉告诉我,张量形状可能太大而无法解析/初始化.我已经研究过这个错误,似乎在网上很少有文档.此错误是否提供足够的信息来说明问题所在?谢谢.

2017-10-25 15:07:54.252194: W C:\tf_jenkins\home\workspace\rel-
win\M\windows\PY\35\tensorflow\core\framework\op_kernel.cc:1182] Invalid 
argument: Cannot parse tensor from proto: dtype: DT_FLOAT
tensor_shape {
  dim {
    size: 16
  }
  dim {
    size: 16
  }
  dim {
    size: 7
  }
  dim {
    size: 3298
  }
  dim {
    size: 3298
  }
}
float_val: 0

2017-10-25 15:07:54.252767: E C:\tf_jenkins\home\workspace\rel-
win\M\windows\PY\35\tensorflow\core\common_runtime\executor.cc:644] Executor 
failed to create kernel. Invalid argument: Cannot parse tensor from proto: 
dtype: DT_FLOAT
tensor_shape {
  dim {
    size: 16
  }
  dim {
    size: 16
  } …
Run Code Online (Sandbox Code Playgroud)

python deep-learning conv-neural-network tensorflow

5
推荐指数
1
解决办法
3446
查看次数