前面我們已經(jīng)完成了數(shù)據(jù)的處理啡捶,模型的建立姥敛。萬事俱備,加油届慈!
之前我們將數(shù)據(jù)劃分為徒溪,訓練集和測試集忿偷,已經(jīng)使用過訓練集進行訓練數(shù)據(jù)了金顿。
First,來用測試集測試一下模型的準確率吧鲤桥!
模型訓練
with fluid.dygraph.guard():
accs = []
model_dict, _ = fluid.load_dygraph('MyDNN')
model = MyDNN()
model.load_dict(model_dict) #加載模型參數(shù)
model.eval() #評估模式
for batch_id,data in enumerate(test_reader()):#測試集
images=np.array([x[0].reshape(3,100,100) for x in data],np.float32)
labels = np.array([x[1] for x in data]).astype('int64')
labels = labels[:, np.newaxis]
image=fluid.dygraph.to_variable(images)
label=fluid.dygraph.to_variable(labels)
predict=model(image)
acc=fluid.layers.accuracy(predict,label)
accs.append(acc.numpy()[0])
avg_acc = np.mean(accs)
print(avg_acc)
Attention:
一定要記得
model.eval()
將模型切換到評估模式揍拆,切換到評估模式,模型不會再訓練茶凳,參數(shù)不會再改變嫂拴。
其他的和用動態(tài)圖訓練一樣,走一遍
預測
讀取預測圖像贮喧,進行預測
def load_image(path):
img = Image.open(path)
img = img.resize((100, 100), Image.ANTIALIAS)
img = np.array(img).astype('float32')
img = img.transpose((2, 0, 1))
img = img/255.0
print(img.shape)
return img
構(gòu)建預測動態(tài)圖過程
with fluid.dygraph.guard():
infer_path = '手勢.JPG'
model=MyDNN()#模型實例化
model_dict,_=fluid.load_dygraph('MyDNN')
model.load_dict(model_dict)#加載模型參數(shù)
model.eval()#評估模式
infer_img = load_image(infer_path)
infer_img=np.array(infer_img).astype('float32')
infer_img=infer_img[np.newaxis,:, : ,:]
infer_img = fluid.dygraph.to_variable(infer_img)
result=model(infer_img)
display(Image.open('手勢.JPG'))
print(np.argmax(result.numpy()))
最后給大家貼下我運行的結(jié)果把~
筒狠。。箱沦。辩恼。
沒錯我的模型智能性不高,模型沒有訓練好
那么,如果遇見這種情況又不想破壞模型本身灶伊,應該怎么調(diào)優(yōu)呢疆前?
下面我將介紹幾個簡單調(diào)優(yōu)方法:
-
優(yōu)化器,學習率調(diào)整
opt=fluid.optimizer.SGDOptimizer(learning_rate=0.005, parameter_list=model.parameters())
學習率一般可以選擇0.001聘萨,不過可以根據(jù)實際情況進行調(diào)整(怎樣acc高竹椒,怎樣來),
優(yōu)化器,可以點擊進行學習
-
迭代次數(shù)
epochs_num=20
20-50-100米辐,都可以驚醒嘗試胸完。
All in all,所有的代碼都是你編寫的,如果沒有明確提出不可以修改的地方都是可以隨意修改的儡循,如果出錯運行不了大不了再拷貝一份舶吗,重新來過。
同時你也可以修改一下择膝,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)誓琼,嘗試一下能不能提高acc,降低loss肴捉。
隨便改腹侣!大膽一點你就是acc最高的。
明確提出不可以修改的地方都是可以隨意修改的齿穗,如果出錯運行不了大不了再拷貝一份傲隶,重新來過。
同時你也可以修改一下窃页,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)跺株,嘗試一下能不能提高acc,降低loss脖卖。
隨便改乒省!大膽一點你就是acc最高的。
ps:如果沒有預測的圖片畦木,可以再訓練集或測試機中隨便找一張就行袖扛。自己拍一張,改下像素也是不錯的選擇偶~
如果想了解圖像識別實戰(zhàn)的全過程十籍,請務(wù)必點擊博主名字蛆封,進入主頁查看全部。
別忘了留下勾栗,你的點贊惨篱、評論和關(guān)注偶~
Name:un_lock