最近在用fashionMNIST跑一個網絡,結果如下圖
想要看看用同一個網絡,不同數據集之間對準確率差別,因此我把數據集換成了cifar10.除了要用到transforms.Grayscale(1)
test_dataset = CIFAR10('../data/CIFAR10', train=False, download=True, transform=transforms.Compose([
transforms.Grayscale(1),
transforms.ToTensor(),
transforms.Normalize((mean,),(std,))
]))
將3通道的彩色圖片轉成單通道圖片外,還報了一個錯誤:
RuntimeError:size mismatch, m1: [256 x 1600], m2: [1024 x 256]
經過排查代碼後發現是由於在全連接層時矩陣維度大小不匹配造成的,將維度64*4*4修改成1600:
最後是cifar10經過20個epoch訓練的結果,準確率並沒有fashionMNIST高。猜測或許是因爲cifar10數據量沒有fashionMNIST大,還有一部分原因是因爲cifar10有些數據本身難以識別,數據集的質量不高,因此需要通過一些技巧去提高準確率。如果有更加合理的解釋,歡迎評論多多指教~~