我尝试使用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。 这可能是什么问题?
答案 0 :(得分:5)
好吧,我对这个JS库一无所知,但是我尝试重现该问题,并且确实得到了您提到的错误。 BUT ,小心的程序员会注意到出现了该错误之前的错误。就是这样:
在以下位置访问XMLHttpRequest 源文件'file:///
/keras-js-master/example.bin “空”已被CORS政策阻止:仅跨源请求 支持协议方案:http,数据,chrome,chrome扩展名, https。
您可以在this question中了解有关此问题的更多信息。基本上,由于安全措施,不允许Web应用程序访问您的本地文件。然后,您需要提供这些文件,可以使用以下python命令轻松完成:
python -m http.server
这将提供当前目录中8000端口下本地主机中的文件:
在此link中,还有更多替代方法。
我尝试过此方法,并消除了两个错误。