keras-js“错误:[模型]模型配置不包含任何层。”

BGr*_*raf 8 javascript python keras

我试图使用keras-js在浏览器中加载由keras创建的简单示例网络。将模型另存为.h5文件并将其转换为.bin文件后,在加载模型时出现以下错误:

  *Error: [Model] Model configuration does not contain any layers.*
Run Code Online (Sandbox Code Playgroud)

该模型是通过以下方式简单创建的:

from keras.models import Sequential
from keras.layers import Dense, Activation

model= Sequential()
model.add(Dense(10,input_shape=(1,)))
model.add(Activation('relu'))
model.add(Dense(1))

model.compile(optimizer='rmsprop',loss='mse',metrics=['accuracy'])

inputs=[[5],[3],[4],[5]]
targets=[[5],[3],[4],[5]]

model.fit(inputs,targets,epochs=100)
model.save("example.h5")
Run Code Online (Sandbox Code Playgroud)

然后我将其转换为:

python encoder.py -q example.h5
Run Code Online (Sandbox Code Playgroud)

并使用以下代码将其加载到javascript中:

const model = new KerasJS.Model({
filepath: '/keras/example.bin',
filesystem: true,
gpu: false
})
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用keras版本2.0.9、2.1.2和2.1.5。这可能是什么问题?

Hem*_*con 5

好吧,我对这个JS库一无所知,但是我试图重现该问题,并且确实得到了您提到的错误。但是,细心的程序员会注意到该错误之前的错误已经出现。它是以下内容:

CORS策略已阻止从来源“ null”访问“ file:/// <your_local_path_to_keras-js> /keras-js-master/example.bin”处的XMLHttpRequest:跨协议来源请求仅支持协议方案:http,数据,chrome,chrome扩展名,https。

您可以在本问题中阅读有关此问题的更多信息。基本上,由于安全措施,不允许Web应用程序访问您的本地文件。然后,您需要提供这些文件,可以使用以下python命令轻松完成:

python -m http.server
Run Code Online (Sandbox Code Playgroud)

这将在端口8000下的localhost提供当前目录中的文件:

http://本地主机:8000 /

在此链接中,还有更多替代方法可以执行此操作。

我试过了,摆脱了两个错误。