ValueError: Input 0 of node Variable/Assign was passed int32 from Variable:0 incompatible with expected int32_ref
ValueError: Input 0 of node Variable/Assign was passed int32 from Variable:0 incompatible with expected int32_ref
我目前正在尝试使用 Tensorflow.js 训练一个训练有素的 TF seq2seq 模型。为此,我需要获取 json 文件。我的输入是几句话,输出是"embeddings"。当我读入检查点时,该模型正在运行,但是我无法将其转换为 tf.js。转换过程的一部分是将我最新的检查点冻结为 protobuf (pb) 文件,然后将其转换为 tensorflow.js 所期望的 json 格式。
以上是我的理解,由于我以前没有做过,所以可能是错误的,如果我从阅读中推断出的内容有误,请随时纠正。
当我尝试转换为 tensorflow.js 格式时,我使用以下命令:
sudo tensorflowjs_converter --input_format=tf_frozen_model
--output_node_names='embeddings'
--saved_model_tags=serve
./saved_model/model.pb /web_model
然后显示 post 中列出的错误:
ValueError: Input 0 of node Variable/Assign was passed int32 from
Variable:0 incompatible with expected int32_ref.
我 运行 遇到的一个问题是我什至不确定如何解决这个问题。所以我希望你们中的一个人可能有一些指导,或者你知道我的问题可能是什么。
我在下面的 link 中升级了用于将检查点文件转换为 protobuf 的代码。然后我在笔记本的底部添加了该文件的导入,然后提供了我在尝试转换为 tensorflowjs 格式时遇到的相同错误。 (只需滚动到笔记本底部)
https://github.com/xtr33me/textsumToTfjs/blob/master/convert_ckpt_to_pb.ipynb
如有任何帮助,我们将不胜感激!
仍然不确定为什么会出现上述错误,但最后我通过 tf.saved_model 切换到使用 TF 的 SavedModel 解决了这个问题。如果将来 运行 的任何人都喜欢类似的东西,可以在下面找到一个对我有用的粗略示例。保存下面的模型后,我就可以对其执行 tensorflowjs_convert 调用并导出正确的文件。
if first_iter == True: #first time through
first_iter = False
#Lets try saving this badboy
cwd = os.getcwd()
path = os.path.join(cwd, 'simple')
shutil.rmtree(path, ignore_errors=True)
inputs_dict = {
"batch_decoder_input": tf.convert_to_tensor(batch_decoder_input)
}
outputs_dict = {
"batch_decoder_output": tf.convert_to_tensor(batch_decoder_output)
}
tf.saved_model.simple_save(
sess, path, inputs_dict, outputs_dict
)
print('Model Saved')
#End save model code
我目前正在尝试使用 Tensorflow.js 训练一个训练有素的 TF seq2seq 模型。为此,我需要获取 json 文件。我的输入是几句话,输出是"embeddings"。当我读入检查点时,该模型正在运行,但是我无法将其转换为 tf.js。转换过程的一部分是将我最新的检查点冻结为 protobuf (pb) 文件,然后将其转换为 tensorflow.js 所期望的 json 格式。
以上是我的理解,由于我以前没有做过,所以可能是错误的,如果我从阅读中推断出的内容有误,请随时纠正。
当我尝试转换为 tensorflow.js 格式时,我使用以下命令:
sudo tensorflowjs_converter --input_format=tf_frozen_model
--output_node_names='embeddings'
--saved_model_tags=serve
./saved_model/model.pb /web_model
然后显示 post 中列出的错误:
ValueError: Input 0 of node Variable/Assign was passed int32 from Variable:0 incompatible with expected int32_ref.
我 运行 遇到的一个问题是我什至不确定如何解决这个问题。所以我希望你们中的一个人可能有一些指导,或者你知道我的问题可能是什么。
我在下面的 link 中升级了用于将检查点文件转换为 protobuf 的代码。然后我在笔记本的底部添加了该文件的导入,然后提供了我在尝试转换为 tensorflowjs 格式时遇到的相同错误。 (只需滚动到笔记本底部)
https://github.com/xtr33me/textsumToTfjs/blob/master/convert_ckpt_to_pb.ipynb
如有任何帮助,我们将不胜感激!
仍然不确定为什么会出现上述错误,但最后我通过 tf.saved_model 切换到使用 TF 的 SavedModel 解决了这个问题。如果将来 运行 的任何人都喜欢类似的东西,可以在下面找到一个对我有用的粗略示例。保存下面的模型后,我就可以对其执行 tensorflowjs_convert 调用并导出正确的文件。
if first_iter == True: #first time through
first_iter = False
#Lets try saving this badboy
cwd = os.getcwd()
path = os.path.join(cwd, 'simple')
shutil.rmtree(path, ignore_errors=True)
inputs_dict = {
"batch_decoder_input": tf.convert_to_tensor(batch_decoder_input)
}
outputs_dict = {
"batch_decoder_output": tf.convert_to_tensor(batch_decoder_output)
}
tf.saved_model.simple_save(
sess, path, inputs_dict, outputs_dict
)
print('Model Saved')
#End save model code