【发布时间】:2021-05-07 02:58:19
【问题描述】:
我正在使用 InceptionV3 使用 tensorflow 进行多类分类。 我以为我搞定了,但结果很奇怪,与我想要的相差甚远。
Epoch 1/10
58/58 [==============================] - 47s 591ms/step - loss: 0.0000e+00 - accuracy: 0.0279
Epoch 2/10
58/58 [==============================] - 38s 591ms/step - loss: 0.0000e+00 - accuracy: 0.0286
Epoch 3/10
58/58 [==============================] - 38s 596ms/step - loss: 0.0000e+00 - accuracy: 0.0249
Epoch 4/10
58/58 [==============================] - 38s 603ms/step - loss: 0.0000e+00 - accuracy: 0.0250
这是我的代码。
这段代码是我处理数据的地方。 raw_train 来自 oxford_iiit_pet。
dataset, metadata = tfds.load('oxford_iiit_pet', with_info=True, as_supervised=True)
raw_train, raw_test = dataset['train'], dataset['test']
IMAGE_SIZE = (224, 224)
def preprocess_dataset(image, label):
image = tf.cast(image, tf.float32)
image = (image/127.5)-1 # might need to fix this part
image = tf.image.resize(image, IMAGE_SIZE)
return image, label
BATCH_SIZE = 64
SHUFFLE_BUFFER_SIZE = 1024
train = raw_train.map(preprocess_dataset)
test = raw_test.map(preprocess_dataset)
train_batches = train.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
test_batches = test.batch(BATCH_SIZE)
这是我的模型。
IMG_SHAPE = (IMAGE_SIZE[0], IMAGE_SIZE[1], 3)
model_inception = tf.keras.applications.InceptionV3(input_shape=IMG_SHAPE, include_top = False, weights = 'imagenet')
model_inception.trainable = False # freeze the model
learning_rate = 0.001
model = tf.keras.Sequential([
model_inception,
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(
optimizer = tf.keras.optimizers.RMSprop(lr=learning_rate),
loss = 'categorical_crossentropy',
metrics=['accuracy']
)
EPOCHS = 10
history = model.fit(
train_batches,
epochs = EPOCHS
)
我不完全确定这是我预处理数据的方式还是我设置模型的方式。 在我真正运行模型之前,一切似乎都很好。 似乎正在发生梯度消失,但我不知道为什么以及它是否真的是问题所在。 我查看了该模型的使用方式,但似乎没有给出明确的答案。
【问题讨论】:
标签: python tensorflow tensorflow2.0