【发布时间】:2022-01-22 02:24:15
【问题描述】:
我有一个 128 个神经元的输入层。两个隐藏层 128 个神经元,每个都具有 relu 激活功能。现在我很难构建我的输出层。您可以将输入值与 mnist 数据集的像素值进行比较。每个输入(128 个数值)都有一个从 -128 到 127 范围内的输出。这个范围内的每个值(-128 到 127)代表一个输出类。我用激活函数 sigmoid 承包了一个 256 的输出层。
我的代码是
model_1 = keras.Sequential([
keras.layers.Dense(128, input_shape=(128,), activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(128, input_shape=(128,), activation='relu'),
keras.layers.Dense(256, input_shape=(128,), activation='sigmoid')
])
model_1.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model_1.fit(X_train, Y_train, epochs=5)
在我的训练数据集中,输入输出都是int8数据类型。但是我收到这样的错误
"INVALID_ARGUMENT: Received a label value of -124 which is outside the valid range of [0, 255). Label values: 44 -26 -120 -73 -84 -21 -123 90 -14 76 -43 -8 72 -94 -78 60 -121 -98 -124 106 -79 72 -2 -79 -116 55 0 6 82 -45 -35 -17"
谁能帮我解决这个问题?我的损失函数有问题吗?如何告诉输出层我的输出类在 -128 到 127 的范围内?
【问题讨论】:
标签: python tensorflow keras neural-network