在腾讯云开发者实验室,有个使用rnn的变种seq2seq算法实现的聊天机器人,预测数据时出现了下面的错误:
module 'tensorflow.python.ops.rnn_cell_impl' has no attribute '_linear'
分析原因:
经过查询其他帖子,发现一个类似的错误:https://blog.csdn.net/u014568072/article/details/85336545
由此判断,此错误是因为安装的tensorflow版本较高,不兼容所引用的包。
解决方法:只需修改seq2seq.py文件中两处:
一个是引用包需要修改,名称有了变化:
from tensorflow.python.ops import rnn_cell_impl
修改为:
from tensorflow.contrib.rnn.python.ops.core_rnn_cell import _linear
二是使用的形式需要修改:
linear = rnn_cell_impl._linear # pylint: disable=protected-access
修改为:
linear = _linear # pylint: disable=protected-access
修改好的文件,可以在github中下载:https://github.com/zlanngao/deeplearning/blob/master/5.4.3/seq2seq.py
参考修改截图: