0
現在我正在使用keras。 我正在製作圖像識別系統。 但我得到一個錯誤,json文件可能是錯誤的
Using TensorFlow backend.
Traceback (most recent call last):
File "use_model.py", line 35, in <module>
model = model_from_json(open(keras_model).read())
File "/Users/xx/anaconda/envs/py36/lib/python3.6/site-packages/keras/models.py", line 212, in model_from_json
config = json.loads(json_string)
File "/Users/xx/anaconda/envs/py36/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/Users/xx/anaconda/envs/py36/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/xx/anaconda/envs/py36/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我認爲JSON文件是壞我的應用程序,所以我刪除test.json。 但在那個時候,我得到了一個錯誤
Using TensorFlow backend.
Traceback (most recent call last):
File "use_model.py", line 35, in <module>
model = model_from_json(open(keras_model).read())
FileNotFoundError: [Errno 2] No such file or directory: './test.json'
我想這是自然的(因爲我刪除了JSON文件) 我不知道該怎麼fix.What我應該怎麼辦? 我的整個的代碼是這樣
# coding:utf-8
import keras
import sys, os
import scipy
import scipy.misc
import numpy as np
from keras.models import model_from_json
import json
imsize = (32, 32)
testpic = "./testpic/"
keras_model = "./test.json"
keras_param = "./test.hdf5"
def load_image(path):
img = scipy.misc.imread(path, mode="RGB")
img = scipy.misc.imresize(img, imsize)
img = img/255.0
return img
def get_file(dir_path):
"""
['244573113_thumb.jpg', 'car1.jpg', 'car2.jpg', 'car3.jpg', 'cat1.jpg', 'cat2.jpg', 'cat3.jpg', 'dog1.jpg', 'dog2.jpg', 'dog3.jpg', 'dog4.jpg', 'dog5.jpg', 'dog6.jpg', 'dog7.jpg']
"""
filenames = os.listdir(dir_path)
return filenames
if __name__ == "__main__":
pic = get_file(testpic)
model = model_from_json(open(keras_model).read())
model.load_weights(keras_param)
model.summary()
for i in pic:
print(i)
img = load_image(testpic + i)
#vec = model.predict(np.array([img]), batch_size=1)
prd = model.predict(np.array([img]))
print(prd)
prelabel = np.argmax(prd, axis=1)
if prelabel == 0:
print(">>>cat")
elif prelabel == 1:
print(">>> dog")
elif prelabel == 2:
print(">>> other")
print("#"*55)
是的,它是空的。我應該寫些什麼?在那段時間,我應該寫什麼? – user21063
是的,它是空的。那麼,我應該寫什麼? – user21063
它應該包含JSON格式的模型配置。查看更新後的答案,舉個例子。 – mhawke