3
私は研究論文からcnnを再作成しようとしていますが、まだ深い学習には新しいです。畳み込み層のテンソルフローサイズ
サイズが32x32x7の3Dパッチが与えられました。私は最初に、32のフィーチャと2のストライドを使ってサイズ3x3のコンボリューションを実行したいとします。その結果から、64のフィーチャと1のストライドを持つ3x3x4のコンボリューションを実行する必要があります。プールしたり、 2つの畳み込みの間に機能する。 なぜ私は最初の畳み込みの結果を2番目の畳み込みにフィードできないのですか?
import tensorflow as tf
sess = tf.InteractiveSession()
def conv3d(tempX, tempW):
return tf.nn.conv3d(tempX, tempW, strides=[2, 2, 2, 2, 2],
padding='SAME')
def conv3d_s1(tempX, tempW):
return tf.nn.conv3d(tempX, tempW, strides=[1, 1, 1, 1, 1],
padding='SAME')
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
x = tf.placeholder(tf.float32, shape=[None, 7168])
y_ = tf.placeholder(tf.float32, shape=[None, 3])
W = tf.Variable(tf.zeros([7168,3]))
#first convolution
W_conv1 = weight_variable([3, 3, 1, 1, 32])
x_image = tf.reshape(x, [-1, 32, 32, 7, 1])
h_conv1 = conv3d(x_image, W_conv1)
#second convolution
W_conv2 = weight_variable([3, 3, 4, 1, 64])
h_conv2 = conv3d_s1(h_conv1, W_conv2)
ありがとうございます!
あなたが見ているエラーは何ですか? – Engineero