1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
您的問題來自最后一層的大?。楸苊膺@些錯(cuò)誤,始終希望對(duì)N_IMAGES、WIDTH、HEIGHT和使用 python 常量):N_CHANNELSN_CLASSES
用于圖像分類
您應(yīng)該為每張圖片分配一個(gè)標(biāo)簽。嘗試切換labels:
import tensorflow as tf
import numpy as np
from sklearn.model_selection import train_test_split
np.random.seed(4213)
N_IMAGES, WIDTH, HEIGHT, N_CHANNELS = (500, 160, 160, 10)
N_CLASSES = 5
data = np.random.randint(low=1,high=29, size=(N_IMAGES, WIDTH, HEIGHT, N_CHANNELS))
labels = np.random.randint(low=0,high=N_CLASSES, size=(N_IMAGES))
#...
用于語義分割
確保您的分類器(網(wǎng)絡(luò)的最后一層)大小相應(yīng)。在這種情況下,每個(gè)像素需要 1 個(gè)類別:
#...
model = tf.keras.Sequential()
model.add(arch)
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(width * height))
model.add(tf.keras.layers.Reshape([width , height]))
#...
這是您可以獲得的最簡單的方法。相反,您可以設(shè)置多個(gè)反卷積層作為分類器,或者您甚至可以翻轉(zhuǎn)架構(gòu)arch并使用它來生成分類結(jié)果。正交地,您可以one_hot對(duì)標(biāo)簽執(zhí)行編碼,從而將它們擴(kuò)展一個(gè)因子N_CLASSES,有效地乘以最后一層中的神經(jīng)元數(shù)量。
添加回答
舉報(bào)