关于循环调用Variable RNN的reuse问题

  • 问题:Variable already exists
    • 原因
    • 解决

问题:Variable already exists

问题描述:Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? Originally defined at:

原因

数据格式如下:需要对不同ID的数据分别进行神经网络的预测,for循环下每个ID都调用一次搭建的RNN模型,这种情况下就出现了reuse的问题。

解决

  1. 如果只需要计算一次RNN模型,那么常见的解决的解决方法是在rnn_cell上使用 with tf.variable_scope即可,reuse = ‘None’ ,‘True’, ‘tf.AUTO_REUSE’
    需要注意的是如果有两个cell且名称一致的话, 第一个的cell 上面一定写上resuse = ’None’或’tf.AUTO_REUSE’ ,第二个之后要写’True’ 。

  2. 或者,你可以直接给两个cell其不同的名字。

    with tf.variable_scope('lstm',reuse=tf.AUTO_REUSE):rnn_cell = tf.contrib.rnn.BasicLSTMCell(num_units=128)#####有两个cell,起不同的名字 或者 设置reuse #######with tf.variable_scope('lstm',reuse=None):rnn_cell = tf.contrib.rnn.BasicLSTMCell(num_units=128)with tf.variable_scope('lstm',reuse=True):rnn_cell = tf.contrib.rnn.BasicLSTMCell(num_units=128)
  1. 我遇到的是需要不断的调用计算,所以设置reuse就没有效果了。因为如果设置为’True’ ,则违背了第一个cell不同为True的原则,如果设置为另外两个,又违背了之后要令cell为True的原则,所以只能用改名的方法了。代码示例如下:
###for对user_id的循环下##
flage =str(user_id)
####在网络中传递 flage ,使每次调用cell都有不同的名字,这个问题就解决了。
def model_loss(flage,ac_fn, keep_prob, input_, label_):with tf.variable_scope(flage,reuse=tf.AUTO_REUSE):rnn_cell = tf.contrib.rnn.BasicLSTMCell(num_units=128)outputs, (h_c, h_n) = tf.nn.dynamic_rnn(rnn_cell,                   # cell you have choseninput_,                      # inputinitial_state=None,         # the initial hidden statedtype=tf.float32,           # must given if set initial_state = Nonetime_major=False,           # False: (batch, time step, input); True: (time step, batch, input))train_features, train_targets, val_features, val_targets, test_features, leaky_relu)

这是一个小问题,但是当时没想明白,对tensorflow的reuse设置也不了解,所以还是记录一下。另外,如果以上方法还没解决这个问题,可以考虑重启python核,另外 tf.reset_default_graph() 放在程序开始也是常见的操作。

关于循环调用Variable RNN的reuse问题相关推荐

  1. ValueError: Variable rnn/basic_rnn_cell/kernel already exists, disallowed. Did you mean to set reuse

    ValueError: Variable rnn/basic_rnn_cell/kernel already exists, disallowed. Did you mean to set reuse ...

  2. 循环神经网络LSTM RNN回归:sin曲线预测

    摘要:本篇文章将分享循环神经网络LSTM RNN如何实现回归预测. 本文分享自华为云社区<[Python人工智能] 十四.循环神经网络LSTM RNN回归案例之sin曲线预测 丨[百变AI秀]& ...

  3. 神经网络学习小记录2——利用tensorflow构建循环神经网络(RNN)

    神经网络学习小记录2--利用tensorflow构建循环神经网络(RNN) 学习前言 RNN简介 tensorflow中RNN的相关函数 tf.nn.rnn_cell.BasicLSTMCell tf ...

  4. PyTorch 学习笔记(十一):循环神经网络(RNN)

    对于人类而言,以前见过的事物会在脑海中留下记忆,虽然随后记忆会慢慢消失,但是每当经过提醒,人们往往可以重拾记忆.在神经网络中也是一样,之前介绍的CNN模型都是与时间序列无关的模型,它有明显的局限性,就 ...

  5. ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed.

    ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. 用spyder运行mnist_lstm.py 第 ...

  6. 【深度学习】循环神经网络(RNN)的tensorflow实现

    [深度学习]循环神经网络(RNN)的tensorflow实现 一.循环神经网络原理 1.1.RNN的网络结构 1.2.RNN的特点 1.3.RNN的训练 二.循环神经网络的tensorflow实现 参 ...

  7. PyTorch-09 循环神经网络RNNLSTM (时间序列表示、RNN循环神经网络、RNN Layer使用、时间序列预测案例、RNN训练难题、解决梯度离散LSTM、LSTM使用、情感分类问题实战)

    PyTorch-09 循环神经网络RNN&LSTM (时间序列表示.RNN循环神经网络.RNN Layer使用.时间序列预测案例(一层的预测点的案例).RNN训练难题(梯度爆炸和梯度离散)和解 ...

  8. 小常识10: 循环神经网络(RNN)与长短时记忆网络LSTM简介。

    小常识10:  循环神经网络(RNN)与长短时记忆网络LSTM简介. 本文目的:在计算机视觉(CV)中,CNN 通过局部连接/权值共享/池化操作/多层次结构逐层自动的提取特征,适应于处理如图片类的网格 ...

  9. tensorflow循环神经网络(RNN)文本生成莎士比亚剧集

    tensorflow循环神经网络(RNN)文本生成莎士比亚剧集 我们将使用 Andrej Karpathy 在<循环神经网络不合理的有效性>一文中提供的莎士比亚作品数据集.给定此数据中的一 ...

最新文章

  1. proe输入数字时成双出现_罗斯蒙特温度变送器3144P单只和双只输入输出的的含义...
  2. js如何打印object对象
  3. 查看用户登录时间以及命令历史
  4. springmvc十一: @RequestMapping-ant风格的url
  5. 详解Java中的clone方法 -- 原型模式
  6. Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)
  7. 二叉树的层序遍历和前中后序遍历代码 迭代/递归
  8. PostgreSql之在group by查询下拼接列字符串
  9. MyBatis学习笔记(4)-resultMap多对多映射使用总结
  10. mysql alisql_对比!!mysql5.7 mysql8.0 alisql5.6同样插入400万数据的对比
  11. less转换css及html里面JS的引入
  12. 2-10-Mysql认实和搭建LAMP环境部署Ucenter和Ucenter-home网站
  13. Word中的空格变成点的问题与解决
  14. Xilinx FPGA输入输出缓冲 BUF 的使用
  15. authenticated users: 权限介绍
  16. 苏宁web前端电话面试
  17. 如何使用vpd来dump波形
  18. 知识图谱——领域知识问答系统简单介绍
  19. it人都包括哪些岗位
  20. 310页(11万字)2021年数字医院信息化综合解决方案

热门文章

  1. C语言实现斐波那契数列的几种方法
  2. yuv数据(nv12和nv21)和RGB数据之间转换的c++代码
  3. [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)
  4. 用Python解析XML的几种常见方法的介绍
  5. VS Code配置matlab
  6. IO流_递归、IO流总结
  7. JAVA缓存技术特点
  8. GoJS v2.2.7 去水印
  9. SUN公司Java认证和考试纵览
  10. Interval (mathematics)