使用LSTM和动态RNN的可训练字嵌入层:AdamOptimizer期望float_ref代替

2024-04-26 09:43:11 发布

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

我用RNN对单词嵌入序列进行句子分类。一开始我在喂预先训练过的单词嵌入,一切都很好。我制作了嵌入矩阵a tf.placeholder,维数为(voab大小,嵌入大小),并从GloVe中输入一些预先训练好的嵌入。我还使用tf.nn.embedding_lookup将输入(单词id的序列)转换为嵌入序列。在

然后我想让模型训练嵌入,所以我把嵌入矩阵改为tf.Variable,而不是占位符。现在TensorFlow给出了这个错误——显然AdamOptimizer不能处理嵌入查找。你知道怎么回事或者怎么解决这个问题吗?在

tensorflow.python.framework.errors_impl.InvalidArgumentError: Input 0 of node 
Adam/update_embeddings/AssignSub was passed float from _recv_embeddings_0:0 
incompatible with expected float_ref.

Tags: tf分类序列矩阵nnembeddingfloat单词
1条回答
网友
1楼 · 发布于 2024-04-26 09:43:11

不能同时向变量提供值并对其进行优化。相反,您必须首先运行tf.分配将其初始化为fed值,然后运行optimier。或者,更简单地说,您可以将手套向量作为变量的初始值设定项传递,然后运行tf.global_variables_初始值设定项. 在

相关问题 更多 >