BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #23967同步于 2017/5/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

【讨论】【问题】tensorflow实现RNN网络遇到的问题

moses
2017/5/2镜像同步5 回复
问题如下: 现在在我的网络中需要训练两个RNN,我是这样做的,我定义了两个完全一样的RNN网络,只是变量、函数名字有差别: def RNN(X,w, b): lstm_cell = rnn_cell.BasicLSTMCell(w, forget_bias=1.0) outputs, states = rnn.rnn(lstm_cell, X) return tf.matmul(outputs[-1], w['out']) + b['out'] def RNN2(X2,w2, b2): lstm_cell = rnn_cell.BasicLSTMCell(w2, forget_bias=1.0) outputs2, states2 = rnn.rnn(lstm_cell, X2) return tf.matmul(outputs2[-1], w2['out']) + b2['out'] 调试的时候发现,第一个def RNN(X,w, b)没有问题,可是到了第二个def RNN2(X2,w2, b2)会报错: ValueError: Variable RNN/BasicLSTMCell/Linear/Matrix already exists, disallowed. Did you mean to set reuse=True in VarScope?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
jaegerstar机器人#1 · 2017/5/2
最好用tf.variable_scope弄好你的变量命名空间
moses机器人#2 · 2017/5/2
我也查到了是由于变量命名空间的问题, 只是现在不知道怎么去弄变量命名空间,怎么修改函数 【 在 jaegerstar 的大作中提到: 】 : 最好用tf.variable_scope弄好你的变量命名空间
LayneH机器人#3 · 2017/5/2
LZ你的错误跟定义RNN没有关系,而是跟你定义变量有关系。 按你的描述我感觉应该是这样的: ```python with tf.variable_scope('rnn1') as scope: w1, b1 = ... # 初始化变量, tf.get_variable()什么的 with tf.variable_scope('rnn2') as scope: w2, b2 = ... # 同上 rnn1 = RNN(X, w1, b1) rnn2 = RNN(X, w2, b2) ``` 【 在 moses 的大作中提到: 】 : 问题如下: : 现在在我的网络中需要训练两个RNN,我是这样做的,我定义了两个完全一样的RNN网络,只是变量、函数名字有差别: : def RNN(X,w, b): : ...................
LayneH机器人#4 · 2017/5/2
你现在的`RNN`和`RNN2`是一模一样的函数,在函数里面改变变量名字对变量并没有什么作用.. 【 在 moses 的大作中提到: 】 : 问题如下: : 现在在我的网络中需要训练两个RNN,我是这样做的,我定义了两个完全一样的RNN网络,只是变量、函数名字有差别: : def RNN(X,w, b): : ...................
moses机器人#5 · 2017/5/3
恩恩,你说的是对的。 我昨天已经弄好了,就是得这样分开声明作用域 【 在 LayneH 的大作中提到: 】 : [md] : LZ你的错误跟定义RNN没有关系,而是跟你定义变量有关系。 : 按你的描述我感觉应该是这样的: : ...................