Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tf.nn.dynamic\n的值错误:维度必须相等_Python_Tensorflow_Machine Learning_Lstm_Recurrent Neural Network - Fatal编程技术网

Python tf.nn.dynamic\n的值错误:维度必须相等

Python tf.nn.dynamic\n的值错误:维度必须相等,python,tensorflow,machine-learning,lstm,recurrent-neural-network,Python,Tensorflow,Machine Learning,Lstm,Recurrent Neural Network,我想使用tensorflow的tf.nn.dynamic\u rnn功能创建一个rnn,但它只允许我为一个层设置隐藏大小 这是我的密码: self._Input=tf.placeholder(tf.float64,shape=(None,self._time_size,self._batch_dim),name='input') self._Expected_o=tf.placeholder(tf.float64,shape=(None,self._time_size,self.

我想使用tensorflow的
tf.nn.dynamic\u rnn
功能创建一个rnn,但它只允许我为一个层设置隐藏大小

这是我的密码:

    self._Input=tf.placeholder(tf.float64,shape=(None,self._time_size,self._batch_dim),name='input')
    self._Expected_o=tf.placeholder(tf.float64,shape=(None,self._time_size,self._cell_output_size),name='Expected_o')
    #creation of the network

    initializer = tf.random_uniform_initializer(-1, 1)      
    cell = tf.nn.rnn_cell.GRUCell(self._hidden_size,kernel_initializer=initializer)  
    rnn_cells = tf.nn.rnn_cell.MultiRNNCell([cell] * self._num_layer) 

    # network
    self._output, out_state = tf.nn.dynamic_rnn(cell=rnn_cells,inputs= self._Input, dtype=tf.float64)
只要我保持我的
隐藏大小
值与输入占位符的最后一个维度相同,即
\u batch\u dim
,一切正常

但当情况不同时,我总是会收到这样的错误信息:

ValueError:尺寸必须相等,但为8和X表示 “rnn/while/rnn/multi_rnn_cell/cell_0/cell_0/gru_cell/MatMul_2”(作品: “MatMul”)和输入形状:[?,Y],[X,Y]


其中,
X
是我为我的
hidden_size+1
输入的值,
Y
hidden_size*2
的值。我尝试了许多
hidden\u size
的值,这两个数字,
X
Y
每次都会出现。消息error表示调用
tf.rnn.dynamic\u rnn
时发生错误

更改您的代码,从

cell=tf.nn.rnn\u cell.GRUCell(self.\u hidden\u size,kernel\u initializer=initializer)
rnn_cells=tf.nn.rnn_cell.multirncell([cell]*self.\u num_layer)

layers=[tf.nn.rnn\u cell.GRUCell(self.\u hidden\u size,kernel\u initializer=initializer)
对于u in self._num_layer]
rnn_单元=tf.nn.rnn_单元.multirncell(层)

。。。更深的GRU层将能够适应早期层的输出。

请提供一个。谢谢这是解决方案,但您只需添加范围(self.\u num\u layer),因为self.\u num\u layer在我的case@yohansebmoc哦,事实上,忘记了
范围
。谢谢你发现了