在 pycharm 上加载经过训练的 Tensorflow 保存模型时出错。 ValueError:int() 的无效文字,基数为 10:'class_name'

Posted

技术标签:

【中文标题】在 pycharm 上加载经过训练的 Tensorflow 保存模型时出错。 ValueError:int() 的无效文字,基数为 10:\'class_name\'【英文标题】:Error while loading trained Tensorflow Saved Model on pycharm. ValueError: invalid literal for int() with base 10: 'class_name'在 pycharm 上加载经过训练的 Tensorflow 保存模型时出错。 ValueError:int() 的无效文字,基数为 10:'class_name' 【发布时间】:2020-12-17 09:57:12 【问题描述】:

背景: 我已经训练了一个包含在图像分类器中的模型。这个模型包含在一个 TF CNN 中并且已经在线训练(与谷歌合作)然后我将它下载为一个 tf.savemodel 对象。我想在 PyQt5 桌面应用程序上部署这个经过训练的模型。

问题: 当我尝试在 PyCharm (2020.1.3) 的代码中加载经过训练的模型时,出现以下错误:

ValueError: invalid literal for int() with base 10: 'class_name'

在处理上述异常的过程中,又发生了一个异常:

ValueError: Error converting shape to a TensorShape: invalid literal
for int() with base 10: 'class_name'.

用于加载模型的代码:

model1=tf.keras.models.load_model(r'C:\Users\user\Desktop\UNI\L3\saved_models\model7')

旁注:当我在 colab 上运行同一行时,模型已成功加载到笔记本中。

问题: - 错误是什么意思? - 为什么它在 colab 上运行,而不是在我的 IDE 中运行? -如何解决这个问题,以便在我的应用中加载和使用经过训练的模型?

【问题讨论】:

你使用的是什么版本的 Tensorflow? 我在使用 tensorflow 2.0.0 时遇到了这个问题,而 gcp (google) tensorflow 版本是 2.2。我升级到 tensorflow 2.2.3,它就消失了。 通常在将float的字符串表示形式传递给int时会出现此错误,您可以尝试这些解决方案***.com/questions/1841565 【参考方案1】:
    可在 colab 上工作,但不能在 IDE 上工作,因为您在两个位置都安装了不同版本的 tenserflow 将 Tensorflow 版本从 2.0.0 更改为 2.3.1 可解决此问题。

【讨论】:

以上是关于在 pycharm 上加载经过训练的 Tensorflow 保存模型时出错。 ValueError:int() 的无效文字,基数为 10:'class_name'的主要内容,如果未能解决你的问题,请参考以下文章

深度学习计算模型/Tensor的读取和存储(PyTorch)

如何将经过 gpu 训练的模型加载到 cpu 中?

tensorflow saver 保存和恢复指定 tensor

tensorflow saver 保存和恢复指定 tensor

运行经过训练的机器学习模型时出错

在 pytorch 中为聊天机器人加载经过训练的模型保存