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。这可能是什么问题?
好吧,我对这个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提供当前目录中的文件:
在此链接中,还有更多替代方法可以执行此操作。
我试过了,摆脱了两个错误。