第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

ValueError:分類指標(biāo)無法處理預(yù)訓(xùn)練 CNN 上的多標(biāo)簽指標(biāo)混合

ValueError:分類指標(biāo)無法處理預(yù)訓(xùn)練 CNN 上的多標(biāo)簽指標(biāo)混合

回首憶惘然 2023-02-07 16:32:18
在 tensorflow 中,我打算針對圖像分類任務(wù)調(diào)整預(yù)訓(xùn)練 CNN 中的超參數(shù)。為此,我使用了預(yù)訓(xùn)練模型vgg16來提取特征,并將提取的嵌入特征用作卷積神經(jīng)網(wǎng)絡(luò) (CNN) 的輸入?;旧希野袰NN放在預(yù)訓(xùn)練模型的上面進(jìn)行訓(xùn)練。我正在嘗試使用 優(yōu)化超參數(shù)batch_size, epochs, drop-rate,GridSeatchCV但出現(xiàn)以下類型錯誤:TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got array([200, 201, 202, 203,...我也試過這樣的:grid_search = grid_search.fit(np.array(df_train_tf), np.array(labels_tr_tf[1:1001]))但現(xiàn)在我遇到以下錯誤:ValueError:分類指標(biāo)無法處理多標(biāo)簽指標(biāo)和多類目標(biāo)的混合我查看了這個錯誤,SO但無法消除上面的錯誤。如何解決這個問題?在我的 CNN 中,我將 flatten dim 張量作為輸入傳遞給 CNN,并且從預(yù)訓(xùn)練模型中提取的嵌入特征是 1 個 dim 特征向量,我將其轉(zhuǎn)換為張量。當(dāng)我嘗試運(yùn)行網(wǎng)格搜索以進(jìn)行超參數(shù)優(yōu)化時,出現(xiàn)了上述類型錯誤。我試圖理解為什么我有這樣的錯誤。誰能指出我發(fā)生了什么事?謝謝我的嘗試:from keras.wrappers.scikit_learn import KerasClassifierfrom sklearn.model_selection import GridSearchCVmodel = KerasClassifier(build_fn=myCNN)parameters = {'dim': [256,512, 784,1024, 2048],              'epochs': [25,50,75,100,125,150,200],              'batch_size':[32,64,128,192, 256],              'drop_rate': [0.1,0.2,0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],              'opt': ['rmsprop', 'adam', 'sgd'],              'actv_func': ['relu', 'tanh']}grid_search = GridSearchCV(estimator=model,                           param_grid=parameters,                           scoring='accuracy',                           cv=5)grid_search = grid_search.fit(df_train_tf, labels_tr_tf[1:1001])其中df_train_tf是預(yù)訓(xùn)練嵌入特征labels_tr_tf的張量,是單熱編碼標(biāo)簽的張量。這是df_train_tf, labels_tr_tf看起來的樣子。df_train_tf.shape:TensorShape([1000, 2048])labels_tr_tf[1:1001].shape:TensorShape([1000, 100])type(labels_tr_tf[1:1001]):tensorflow.python.framework.ops.EagerTensortype(df_train_tf):tensorflow.python.framework.ops.EagerTensordf_train_tf:<tf.Tensor: shape=(1000, 2048), dtype=float32, numpy=array([[ 2.3664525 ,  6.4614077 , 22.128284  , ...,  2.8993628 ,         7.6006427 ,  4.022856  ],       [ 2.8110769 ,  0.        , 21.861437  , ...,  2.8580594 ,         3.8210764 ,  3.4176886 ],...]我沒有找到任何線索為什么我會收到此錯誤。誰能指出我如何做到這一點?解決上述類型錯誤的任何解決方案?任何想法?謝謝
查看完整描述

1 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊

對于與 sklearn 一起使用GridSearchCV的多類標(biāo)簽,標(biāo)簽不應(yīng)進(jìn)行單熱編碼。它們應(yīng)該是包含兩個以上離散值的一維或列向量。檢查文檔以獲取表示。


所以我們必須將單熱編碼目標(biāo)轉(zhuǎn)換為一維,而這又需要我們將損失函數(shù)更改為sparse_categorical_crossentropy


示例代碼:


X = np.random.randn(1000, 2048)

y = np.array([i for i in range(100)]*10) # <- 1D array with target labels


def myModel():

  model = keras.models.Sequential()

  model.add(keras.layers.Dense(100, input_dim=2048, activation='softmax'))

  model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

  return model

  


model = KerasClassifier(build_fn=myModel)

parameters = { 'epochs': [10, 20, 30],

               'batch_size':[1, 2, 3, 4, 5, 6, 7,8] }              


grid_search = GridSearchCV(estimator=model,

                           param_grid=parameters,

                           scoring='accuracy',

                           cv=2)


grid_search = grid_search.fit(X, y)

print (grid_search.best_params_)

輸出:


Epoch 1/10

500/500 [==============================] - 2s 3ms/step - loss: 5.6664 - accuracy: 0.0100

Epoch 2/10

500/500 [==============================] - 1s 3ms/step - loss: 0.0066 - accuracy: 1.0000

Epoch 3/10

500/500 [==============================] - 1s 3ms/step - loss: 9.9609e-04 - accuracy: 1.0000

------ output truncated ------

{'batch_size': 3, 'epochs': 20}


查看完整回答
反對 回復(fù) 2023-02-07
  • 1 回答
  • 0 關(guān)注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號