gpt4 book ai didi

python - Tensorflow:简单图像图像分类器在时代之间根本不更新

转载 作者:行者123 更新时间:2023-12-05 07:06:57 26 4
gpt4 key购买 nike

我有一个非常简单的图像分类器,它最终将成为更大系统的一部分。它采用 6 个 39 x 39 像素数据通道作为输入,并将其分类为有效或无效(1.0 或 0.0)。

由于某些原因,我似乎无法确定第一个时期的准确性是所有时期的准确性。该模型似乎没有修改它的权重...

模型的代码如下。 imgdata 是 n * 39,39,6 的 numpy 数组,knownsso 是 n 1 或 0 值的 numpy 数组。

      imgtrain,imgtest,nametrain,nametest,knowntrain,knowntest = 
train_test_split(imgdata,names,knownsso,test_size=0.3, random_state=42)
imgtrain=tf.cast(np.array(imgtrain),tf.float32)
knowntrain=tf.cast(np.array(knowntrain),tf.float32)
imgtest =tf.cast(np.array(imgtest ),tf.float32)
knowntest =tf.cast(np.array(knowntest ),tf.float32)

inputImg = tf.keras.Input(shape=(39,39,6))
x = tf.keras.layers.Conv2D(32,(3,3), activation='relu')(inputImg)
x = tf.keras.layers.MaxPooling2D((2,2))(x)
x = tf.keras.layers.Flatten()(x)
x = tf.keras.layers.Dense(32, activation=tf.nn.relu)(x)
x = tf.keras.layers.Dense(2, activation=tf.nn.softmax)(x)

model = tf.keras.Model(inputs=inputImg,outputs=x)
model.compile(optimizer = tf.optimizers.Adam(),
loss = 'sparse_categorical_crossentropy',
metrics=['accuracy'])

history = model.fit(imgtrain,knowntrain,epochs=5,validation_data=(imgtest,knowntest))

print(history.history)

我稍微简化了模型,使其对人眼更友好一些,但行为与添加和减去额外的 dropout、dense、maxpool 和 conv2d 层是一致的。我也尝试过改变学习率,但结果仍然完全一样。

我尝试运行的每个版本都会生成相同的历史记录,并且准确度在各个时期都保持不变:

    {'loss': [nan, nan, nan, nan, nan], 'accuracy': [0.75873935, 0.75873935, 0.75873935, 0.75873935, 0.75873935], 'val_loss': [nan, nan, nan, nan, nan], 'val_accuracy': [0.77059567, 0.77059567, 0.77059567, 0.77059567, 0.77059567]}

我可以看出任何问题都非常简单,但我不知道我应该尝试什么来解决这个问题。

最佳答案

这可能是一个菜鸟问题,但标准化我的输入图像似乎有所帮助。

我现在的问题是过度拟合/性能不佳,而不是什么都不做。

关于python - Tensorflow:简单图像图像分类器在时代之间根本不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62314902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com