簡體   English   中英

嘗試為 CIFAR-10 創建一個完全連接的神經網絡

[英]Trying to create a fully connected neural network for CIFAR-10

在機器學習方面,我是一個相對的初學者。

我一直在使用 TensorFlow 作為后端使用 Keras,由於某種原因,當我使用 CIFAR-10 數據集時,我沒有獲得很好的准確性。

這是我的代碼。

model = Sequential()

batch_size = 250

model.add(Dense(100, input_shape = (3072, ), activation='relu',
bias_initializer = 'RandomNormal',kernel_regularizer=regularizers.l2(.01)))


model.add(Dense(50))

model.add(Dense(10))

model.compile(optimizer=keras.optimizers.SGD(lr=0.004), 
loss='hinge', metrics=['categorical_accuracy'])

model.fit(x=X_train, y=utils.to_categorical(Y_Train, num_classes = 10), 
batch_size = batch_size, epochs = 100, validation_split = .4)

X_Train 是一個 (50000, 3072) numpy 數組,Y_Train 是一個 (50000, 1) numpy 數組。

我得到的結果是

損失:1.1865

categorical_accuracy:0.1696

價值損失:1.1859

val_categorical_accuracy:0.1668

在 100 個時代。

我的設置是 Ubuntu 18.04、Python 3.6、Numpy 1.16、Keras 2.2.4

我的代碼是否有問題,或者是完全連接的神經網絡對於圖像分類來說只是一個糟糕的設置,應該使用卷積神經網絡?

您的模型存在許多問題:

  • 第 2 層和第 3 層沒有激活,因此是線性的(在這種情況下對分類無用)

  • 具體來說,您需要在最后一層進行 softmax 激活。 損失不知道如何處理線性輸出。

  • 當您應該使用諸如categorical_crossentropy東西時,您會使用hinge損失。

Jibin 所說的關於您的全連接模型不夠復雜的說法是不正確的,您不需要太多復雜性即可在 CIFAR10 上獲得不錯的准確性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM