ValueError:试图共享变量 rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel [英] ValueError: Trying to share variable rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel

查看:16
本文介绍了ValueError:试图共享变量 rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是代码:

X = tf.placeholder(tf.float32, [batch_size, seq_len_1, 1], name='X')
labels = tf.placeholder(tf.float32, [None, alpha_size], name='labels')

rnn_cell = tf.contrib.rnn.BasicLSTMCell(512)
m_rnn_cell = tf.contrib.rnn.MultiRNNCell([rnn_cell] * 3, state_is_tuple=True)
pre_prediction, state = tf.nn.dynamic_rnn(m_rnn_cell, X, dtype=tf.float32)

这是完全错误:

ValueError: 尝试共享变量 rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel,但指定形状 (1024, 2048) 并找到形状 (513, 2048).

ValueError: Trying to share variable rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel, but specified shape (1024, 2048) and found shape (513, 2048).

我使用的是 GPU 版本的 tensorflow.

I'm using a GPU version of tensorflow.

推荐答案

我在升级到 v1.2 (tensorflow-gpu) 时遇到了类似的问题.我没有使用 [rnn_cell]*3,而是通过循环创建了 3 个 rnn_cells(stacked_rnn)(这样它们就不会共享变量)并馈送 MultiRNNCellstacked_rnn 并且问题消失了.我不确定这样做是否正确.

I encountered a similar problem when I upgraded to v1.2 (tensorflow-gpu). Instead of using [rnn_cell]*3, I created 3 rnn_cells (stacked_rnn) by a loop (so that they don't share variables) and fed MultiRNNCell with stacked_rnn and the problem goes away. I'm not sure it is the right way to do it.

stacked_rnn = []
for iiLyr in range(3):
    stacked_rnn.append(tf.nn.rnn_cell.LSTMCell(num_units=512, state_is_tuple=True))
MultiLyr_cell = tf.nn.rnn_cell.MultiRNNCell(cells=stacked_rnn, state_is_tuple=True)

这篇关于ValueError:试图共享变量 rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆