首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:'tensorflow.python.ops.rnn‘没有属性'rnn’

AttributeError:'tensorflow.python.ops.rnn‘没有属性'rnn’
EN

Stack Overflow用户
提问于 2017-02-18 12:20:31
回答 3查看 17.5K关注 0票数 5

我在循环神经网络上关注this tutorial

这是导入:

代码语言:javascript
复制
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.python.ops import rnn
from tensorflow.contrib.rnn import core_rnn_cell

这是输入处理的代码:

代码语言:javascript
复制
x = tf.transpose(x, [1,0,2])
x = tf.reshape(x, [-1, chunk_size])
x = tf.split(x, n_chunks, 0)

lstm_cell = core_rnn_cell.BasicLSTMCell(rnn_size)
outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32)

对于outputs, states,我得到以下错误

代码语言:javascript
复制
AttributeError: module 'tensorflow.python.ops.rnn' has no attribute 'rnn'

TensorFlow最近进行了更新,那么问题行的新代码应该是什么呢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-18 13:55:41

对于使用较新版本的tensorflow的用户,请将以下内容添加到代码中:

代码语言:javascript
复制
from tensorflow.contrib import rnn 


lstm_cell = rnn.BasicLSTMCell(rnn_size) 
outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)

而不是

代码语言:javascript
复制
from tensorflow.python.ops import rnn, rnn_cell 
lstm_cell = rnn_cell.BasicLSTMCell(rnn_size,state_is_tuple=True) 
outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32)

PS:@BrendanA建议用tf.nn.rnn_cell.LSTMCell代替rnn_cell.BasicLSTMCell

票数 26
EN

Stack Overflow用户

发布于 2019-08-27 23:22:27

谢谢@suku

我得到以下错误:ImportError: No module named 'tensorflow.contrib.rnn.python.ops.core_rnn'

要解算,请执行以下操作:

代码语言:javascript
复制
from tensorflow.contrib.rnn.python.ops import core_rnn

替换为:

代码语言:javascript
复制
from tensorflow.python.ops import rnn, rnn_cell

在我的代码中,我使用了core_rnn.static_rnn

代码语言:javascript
复制
 outputs,_ = core_rnn.static_rnn(cell, input_list, dtype=tf.float32)

我得到了this错误:

NameError: name 'core_rnn' is not defined

通过将该行替换为:

代码语言:javascript
复制
outputs,_ = rnn.static_rnn(cell, input_list, dtype=tf.float32)

python: 3.6 64位rensorflow:1.10.0

票数 0
EN

Stack Overflow用户

发布于 2021-01-31 21:08:43

使用static_rnn方法代替rnn。

代码语言:javascript
复制
 outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)

而不是:

代码语言:javascript
复制
 outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42311007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档