神经网络杂项中的输入和输出形状

时间:2020-04-09 11:38:50

标签: python

https://colab.research.google.com/drive/1YH1_BNbOaa8NHkZjsTNp79Ucux528bqn

我从上面的代码中得到了奇怪的行为。 当我一次训练一个示例时,计算出的输出形状显示批处理大小为2。最重要的是,在我的自定义层的调用方法中,我的权重矩阵为[4000,10],因此您可以期望下一层应具有10个神经元。然而,即使我添加了一个以上的custo层,每个层都有一个矩阵[4000,10],所以netork显然执行了成功的fp,因此每个期望的输入为[1,4000],而不是[1,10]。

最重要的是,只要它的形式(x,x)都是相同的数字,我的compute_output_shape方法似乎就不会影响它。请你帮忙。

def call(self, y):

            self.y=y
            self.z=self.y

            self.z= tf.cast(self.z, tf.int32)
            self.z=tf.reshape(self.z,[1,4000])
            self.h= tf.constant([1,10], tf.int32)

            self.z=tf.tile(self.z,self.h)

            self.ks2 =  tf.Variable(tf.reshape((tf.gather((tf.reshape(self.ks, [-1])),(self.z))), (4000, 
                              10)),trainable=True)

            self._trainable_weights = [self.ks2]
            self.y= tf.cast(self.y, tf.float64)
            self.y=tf.reshape(self.y,[1,4000])





            return K.dot(self.y,self.ks2)

    def compute_output_shape(self, input_shape):
        return (200,200)

0 个答案:

没有答案
相关问题