尝试使用tensorflow训练数据时出现此错误。
tensorflow / core / framework / op_kernel.cc:1651] OP_REQUIRES在以下位置失败 collect_nd_op.cc:47:无效的参数:params.NumElements()太大 对于int32索引:2153378304> 2147483647
相关代码是这样,对于较小的数据集,它可以按预期工作。如何将其应用于更大的数据?
ml_df_collect = list()
similarity_input_placeholder = tf.placeholder(tf.string, shape=(None))
similarity_message_encodings = embed(similarity_input_placeholder)
with tf.Session() as session:
session.run(tf.global_variables_initializer())
session.run(tf.tables_initializer())
message_embeddings_ = session.run(
similarity_message_encodings,
feed_dict={similarity_input_placeholder: messages},
)
corr = np.inner(message_embeddings_, message_embeddings_)
ml_df_collect.append(corr)
答案 0 :(得分:1)
gather_nd
失败,因为张量对于int32
索引而言太大。
TensorFlow文档指定gather_nd
也可以接受int64
索引(https://www.tensorflow.org/api_docs/python/tf/gather_nd)。
为索引张量使用int64
而不是int32
是解决方案。