我正在尝试使用 keras-js 在浏览器中加载一个使用 keras 创建的简单示例网络。将模型保存为 .h5 文件并将其转换为 .bin 文件后,加载时出现以下错误:
*Error: [Model] Model configuration does not contain any layers.*
模型是由以下人员简单创建的:
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")
然后我将它转换为:
python encoder.py -q example.h5
并在 javascript 中加载它:
const model = new KerasJS.Model({
filepath: '/keras/example.bin',
filesystem: true,
gpu: false
})
我已经用 keras 版本 2.0.9、2.1.2 和 2.1.5 试过了。 这可能是什么问题?
最佳答案
嗯,我对这个 JS 库一无所知,但我试图重现这个问题,但我确实遇到了你提到的那个错误。 但是,细心的程序员会注意到出现了上述错误之前的错误。内容如下:
Access to XMLHttpRequest at 'file:///< your_local_path_to_keras-js >/keras-js-master/example.bin' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
您可以在 this question 中阅读有关此问题的更多信息.基本上,由于安全措施,不允许 webapp 访问您的本地文件。然后,您需要提供这些文件,这可以使用以下 python 命令轻松完成:
python -m http.server
这将在端口 8000 下的本地主机的当前目录中提供文件:
在这个 link 中有更多的选择可以做到这一点.
我尝试了这个并摆脱了这两个错误。
关于javascript - 喀拉斯-JS "Error: [Model] Model configuration does not contain any layers.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49201067/