亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我在 keras 實現的 CNN 優化(學習)中出錯,但我不知道解決方案

我在 keras 實現的 CNN 優化(學習)中出錯,但我不知道解決方案

慕的地8271018 2021-12-29 20:32:13
創建 CNN 模型的卷積層時發生錯誤。我不知道錯誤的原因以及如何處理它。我正在使用 keras 和 cifar10 實現 CNN,以使用 Python 3.5 進行機器學習。我在學習階段收到以下錯誤:檢查目標時出錯:預期dense_46 具有形狀(10,) 但得到形狀為(1,) 的數組它不適用于重塑標簽數組 (y_train)。#importimport tensorflow as tfimport kerasimport numpy as npimport matplotlib.pyplot as plt#get datafrom keras.datasets import cifar10(x_train, y_train), (x_test, y_test) = cifar10.load_data()#Image normalizationx_train = x_train / 255.0x_test = x_test / 255.0#Build a CNN modedef CNN_model():    model = keras.models.Sequential()    #1st convolutional layer    model.add(keras.layers.Conv2D(96, 11, strides=(4, 4), padding='valid', data_format='channels_last', activation='relu', bias_initializer='ones', input_shape=(32,32,3)))    model.add(keras.layers.normalization.BatchNormalization(axis=1))    model.add(keras.layers.MaxPooling2D(pool_size=(3, 3), strides=(2, 2), padding='valid', data_format='channels_last'))    #2nd convolutional layer    model.add(keras.layers.Conv2D(256, 2, strides=(4, 4), padding='valid', data_format='channels_last', activation='relu', bias_initializer='zeros'))    model.add(keras.layers.normalization.BatchNormalization(axis=1))    model.add(keras.layers.MaxPooling2D(pool_size=(1, 1), strides=(2, 2), padding='valid', data_format='channels_last'))    #3rd layer    model.add(keras.layers.Flatten())    model.add(keras.layers.Dense(4096))    model.add(keras.layers.Dropout(0.5))    model.add(keras.layers.Dense(4096))    model.add(keras.layers.Dropout(0.5))    #4th Softmax layer    model.add(keras.layers.Dense(10, activation='softmax'))    #compile    model.compile(optimizer=keras.optimizers.SGD(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy'])    return model#Summarymodel = CNN_model()model.summary()
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

這里的問題在于你的目標又名y_train。你的可能是一個 1 x n_samples 長的向量,里面有 10 個不同的標簽。 Keras 需要它的方式是采用 One-Hot-Encoded 方式。您可以通過以下方式執行此操作:

y_train = to_categorical(y_train)

希望能幫助到你!


查看完整回答
反對 回復 2021-12-29
  • 1 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號