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) 

ありがとうございます!

+0

あなたが見ているエラーは何ですか? – Engineero

答えて

1

最初にconv3dのテンソルをお持ちの場合は、[None, 16, 16, 4, 32]のテンソルがありますので、の形のカーブ[3, 3, 4, 32, 64]を使用する必要があります。

関連する問題