【发布时间】:2021-05-18 02:06:09
【问题描述】:
我在本地机器上训练了一个 CNN 模型,使用 model.save('./models/my_model') 保存了模型,我能够加载模型 (new_model = tensorflow.keras.models.load_model('./models/my_model')) 并使用 Web 框架 Flask 对通过浏览器传递的图像进行分类。
现在,我想运行托管在 pythonanywhere.com 中的代码。但是,在加载模型时出现此错误:
ValueError:将形状转换为 TensorShape 时出错:int() 的无效文字,基数为 10:'class_name'。
我不知道是否与版本有关。首先我使用 python 3.8 和最新的 tensorflow 版本进行训练,但由于 Flask 不允许 3.8 中的所有必需库,我在 tensorflow 2.0.0 的烧瓶中使用了 3.7。所以我用 3.7 和 tf 2.0.0 在我的电脑上重新训练了模型,并上传了更新的模型文件。但是,同样的错误仍然存在。
--更新-- 我把日志错误放在这里
运行 WSGI 应用程序时出错 ValueError:将形状转换为 TensorShape 时出错:int() 的无效文字,基数为 10:'class_name'。
文件“/var/www/user_pythonanywhere_com_wsgi.py”,第 16 行,在 从主导入应用程序作为应用程序# noqa
文件“/home/user/mysite/main.py”,第 11 行,在 model = tensorflow.keras.models.load_model('/home/user/mysite/models/modelo')
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py”,第 150 行,在 load_model return saved_model_load.load(filepath, compile)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第 86 行,加载中 model = tf_load.load_internal(path, loader_cls=KerasObjectLoader)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/saved_model/load.py”,第 541 行,在 load_internal 出口目录)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第 103 行,在 init self._finalize()
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第 127 行,在 _finalize node.add(层)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/training/tracking/base.py”,第 457 行,在 _method_wrapper 结果 = 方法(自我,*args,**kwargs)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/sequential.py”,第 174 行,添加 batch_shape=batch_shape, dtype=dtype, name=layer.name + '_input')
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/input_layer.py”,第 263 行,输入 input_tensor=张量)
init 中的文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/input_layer.py”,第 125 行 衣衫褴褛=衣衫褴褛)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/keras/backend.py”,第 1057 行,在占位符中 x = array_ops.placeholder(dtype, shape=shape, name=name)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/ops/array_ops.py”,第 2630 行,在占位符中 return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/ops/gen_array_ops.py”,第 6669 行,在占位符中 shape = _execute.make_shape(shape, "shape")
文件“/usr/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py”,第 211 行,在 make_shape e))
错误来自一个tensorflow文件,我只是传递了保存模型的路径
【问题讨论】:
标签: python tensorflow flask model pythonanywhere