层基本单元1的LSTM输入0,以十为单位

2024-10-01 13:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

当Tensi正在运行错误代码时,Tensi正在运行。代码运行良好,但当我运行函数tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float64)时,它显示值错误

import tensorflow as tf

wordsList = np.load('urduwords.npy')
wordVectors = np.load('urduwordsMatrix.npy')

batchSize = 24
lstmUnits = 64
numClasses = 2
iterations = 10000

tf.reset_default_graph()


labels = tf.placeholder(tf.float32, [batchSize, numClasses])
input_data = tf.placeholder(tf.int32, [batchSize, maxSeqLength])

print(labels)

data = tf.Variable(tf.zeros([batchSize, maxSeqLength, numDimensions]),dtype=tf.float32)
print(data)


data = tf.nn.embedding_lookup(wordVectors,input_data)
print(data)


lstmCell = tf.contrib.rnn.BasicLSTMCell(lstmUnits)
lstmCell = tf.contrib.rnn.DropoutWrapper(cell=lstmCell, output_keep_prob=0.1)

value, _ = tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float64)

如何使用张量流解决这个错误。在

^{pr2}$

输入数据的形状是

(24, 30, 1, 2)

而wordVector的形状是

(24053, 1, 2)

Tags: datatf错误nploaddynamicnnprint
2条回答

标签形状是4维的,因为您向tf输入了错误类型的数据

请尝试使用NumberPy数组或列表

由于您没有提供独立的代码来重现该bug,因此我有一个示例工作代码,如下所示:

VOCAB_SIZE = 128
HIDDEN_SIZE = 200

wordVectors = tf.Variable(tf.random_uniform([VOCAB_SIZE, HIDDEN_SIZE], -1, 1))

labels = tf.random_normal([batchSize, numClasses])
input_data = tf.random_uniform([batchSize, maxSeqLength], maxval=120, dtype=tf.int32)

data = tf.Variable(tf.zeros([batchSize, maxSeqLength, numDimensions]),dtype=tf.float32)

data = tf.nn.embedding_lookup(wordVectors,input_data)

lstmCell = tf.contrib.rnn.BasicLSTMCell(lstmUnits)
lstmCell = tf.contrib.rnn.DropoutWrapper(cell=lstmCell, output_keep_prob=0.1)

value, _ = tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float32)

我已将tf.nn.dynamic_rnn的数据类型更改为tf.float32,以修复数据类型错误。在

相关问题 更多 >