我對Caffe和Deep Learning很新,所以請耐心等待我的經驗和天真的問題。 現在,我想使用FER2013數據集來訓練GoogleNet(它由臉部組成,目的是識別面部所處的7個類別之一)。然而,數據不是圖像格式,而是48x48 = 2304的值,每個值都在0和255之間。所以,爲了創建供給Caffe所需的lmdb文件,我編寫了以下Python腳本來轉換數組轉換成真實圖像。Caffe Python | GoogleNet的低精確度可能是由輸入數據的糟糕形式造成的?
import numpy as np
from PIL import Image
import csv
import itertools
with open('fer2013.csv', 'rb') as f:
mycsv = csv.reader(f)
i=0
for row in itertools.islice(mycsv, 340):
data = row[1]
data = data.split()
data = map(int, data)
data = np.array(data)
im = Image.fromarray(data.reshape((48,48)).astype('uint8')*255)
directory='imagestotest/'
path_to_save = directory+"image"+str(i)+".jpg"
path = "image"+str(i)+".jpg"
im.save(path_to_save)
i=i+1
with open("testset.txt", "a") as myfile:
myfile.write(path+" "+row[0]+"\n")
我再準備我lmdb文件用下面的命令
GLOG_logtostderr = 1 ./deep-learning/caffe/build/tools/convert_imageset --resize_height = 256 --resize_width = 256 - -shuffle /家庭/張全景圖/桌面/圖像/ /home/panos/Desktop/trainingset.txt /家庭/張全景圖/桌面/ train_lmdb
最後,我計算image_mean,我改變train_val.prototxt和設置loss1,loss2,loss3圖層有num_output = 7(因爲我有7個類,0-6)。
我運行我的模型(訓練大小:5000,測試大小:340),準確性相當令人失望,接近23%(前1名),88.8%(前5名)。
這可能是一個超參數配置問題,還是我的輸入文件沒有正確創建? (因爲我害怕我的Python烹飪技巧)
如果有幫助,我的主要超參數是:test_iter:7,test_interval:40,base_lr:0.001,動量:0.9,weight_decay:0.0002。
在此先感謝!
您正在調整'48 X 48'到'256 X 256'的大小。這可能是一個問題。您是否使用Googlenet預訓練模型進行體重初始化? – lnman
@Inman我該怎麼做?它提供了什麼?萬分感謝您的快速回復! – Damager