无法在databricks中保存keras模型

无法在databricks中保存keras模型,keras,databricks,azure-databricks,Keras,Databricks,Azure Databricks,我正在保存keras模型 model.save('model.h5') 在databricks中,但模型未保存 如前所述,我还尝试在/tmp/model.h5中保存 但这种模式并没有节约 保存单元格执行,但当我加载模型时,它显示没有model。h5文件可用 当我这样做时,dbfs\u model\u path='dbfs:/FileStore/models/model.h5'dbutils.fs.cp('file:/tmp/model.h5',dbfs\u model\u path) 或者尝试

我正在保存keras模型

model.save('model.h5')
在databricks中,但模型未保存

如前所述,我还尝试在
/tmp/model.h5中保存

但这种模式并没有节约

保存单元格执行,但当我加载模型时,它显示没有
model。h5
文件可用

当我这样做时,
dbfs\u model\u path='dbfs:/FileStore/models/model.h5'dbutils.fs.cp('file:/tmp/model.h5',dbfs\u model\u path)

或者尝试加载模型

tf.keras.models.load_model(“文件:/tmp/model.h5”)


我收到错误消息
java.io.FileNotFoundException:File File File:/tmp/model.h5不存在

问题是Keras被设计为只处理本地文件,因此它不理解uri,例如
dbfs://
File://
。因此,您需要使用本地路径来保存和加载操作,然后将文件复制到DBFS或从DBFS复制文件(不幸的是,
/DBFS
不能很好地使用Keras,因为它的工作方式)

下面的代码工作得很好。请注意,
dbfs://
file://
仅用于调用
dbutils.fs
命令-Keras stuff使用本地文件的名称

  • 创建模型并本地保存为
    /tmp/model full.h5
来自tensorflow.keras.applications导入接收v3
模型=接收v3(权重=“图像网”)
model.save('/tmp/model full.h5')
  • 将数据作为
    DBFS:/tmp/model full.h5复制到DBFS并检查:
dbutils.fs.cp(“文件:/tmp/model full.h5”、“dbfs:/tmp/model full.h5”)
显示(dbutils.fs.ls(“/tmp/model full.h5”))
  • 将文件从DBFS复制为
    /tmp/model-full2.h5
    &加载它:
dbutils.fs.cp(“dbfs:/tmp/model-full.h5”,“文件:/tmp/model-full2.h5”)
从tensorflow进口keras
model2=keras.models.load_model(“/tmp/model-full2.h5”)

提供有关错误消息(如果存在)的信息,以及有关设置的信息-Databricks运行时版本等。
dbfs\u model\u path='dbfs:/FileStore/models/models/model.h5'dbutils.fs.cp('file:/tmp/model.h5',dbfs\u model\u path)
或尝试加载model
tf.keras.models.load\u model(“file:/tmp/model.h5”)
I收到错误消息
java.io.FileNotFoundException:File文件:/tmp/model.h5不存在
Databricks运行时版本为7.5 ML(包括Apache Spark 3.0.1、GPU、Scala 2.12)