2017-03-02 167 views
3

我正在尝试运行教程(http://r2rt.com/recurrent-neural-networks-in-tensorflow-ii.html),并在移动的模块中存在一些问题。TensorFLow:tf.contrib.rnn模块对象不可调用

我研究了一下,发现部分课程已移动和固定的:

tf.nn.rnn_cell.BasicRNNCell(state_size) 

tf.contrib.rnn.BasicRNNCell(state_size) (that should be correct right?) 

这工作了。

不过,我有这个功能,我似乎无法修复:

rnn_outputs, final_state = tf.nn.rnn(cell, rnn_inputs, initial_state=init_state) 
--> as expected, says: module 'tensorflow.python.ops.nn' has no attribute 'rnn' 

所以,我想:

rnn_outputs, final_state = tf.contrib.rnn(cell, rnn_inputs, initial_state=init_state) 

但是,上面写着: '模块' 对象不是可调用

我正在使用python3(尝试2以及),通过pip3安装了新的TensorFlow 1.0.0。

我试过看API,但对我来说没什么意义,因为我仍在阅读教程来试着了解发生了什么。我想可能这些论据已经改变了,或者现在可能是一个子功能? https://www.tensorflow.org/api_docs/python/tf/contrib/rnn

+2

可能重复[TensorFLow r 1.0中rnn()的等价物是什么?](http://stackoverflow.com/questions/42497216/what-is-the-equivalent-of-the-rnn-in -tensorflow -r-1-0) –

回答

0

我发现(跑)的TensorFlow更新脚本在我的数据。

要修复其余错误,只需更改tf.nn.rnn_cell。到tf.contrib.rnn,现在它工作!

0

如何导入它可能很重要。这样做:

from tensorflow.python.ops import rnn, rnn_cell 

然后使用以下命令:

cell = rnn_cell.BasicRNNCell(state_size) 

rnn_outputs, final_state = rnn.rnn(cell, rnn_inputs, initial_state=init_state) 

我使用这种方式与LSTM细胞和它的工作原理:)

+0

不幸的是,最后一次导入(rnn_cell)不起作用:from tensorflow.python.ops import rnn,rnn_cell ImportError:无法导入名称'rnn_cell' – dorien

+0

对不起,听到这一消息。我在互联网上搜索,他们说,也许你必须升级或降级tensorflow。他们说他们使用的版本是0.8.0,但我也会检查我的 – CrisH

+0

好吧,那不可能是...我有0.10.0 – CrisH

1

张量流在这里有一些文档: https://www.tensorflow.org/api_guides/python/contrib.rnn

的RNN是的contrib模块的一部分。所以,如果你改变它tf.contrib.rnn是向前迈出了很好的一步,但有一个错误: 类型错误:“模块”对象不是可调用

在本文档中,我们有复发NN几种选择:

tf.contrib.rnn.static_rnn 
tf.contrib.rnn.static_state_saving_rnn 
tf.contrib.rnn.static_bidirectional_rnn 
tf.contrib.rnn.stack_bidirectional_dynamic_rnn 

对于我来说,

tf.contrib.rnn.static_rnn 

工作。