我正在尝试使用Inception V3模型进行图像分类。ImageDataGeneratorKeras 是否会创建新图像并添加到我的数据集中?如果我有1000张图像,是否可以使用此功能将其翻倍到用于训练的2000张图像?有没有一种方法可以知道创建了多少图像并将这些图像输入到模型中?
我正在使用 Inception V3 创建一个图像分类模型,并且有两个类。我已将我的数据集和标签拆分为两个 numpy 数组。将数据拆分为 trainX 和 testY 作为图像,trainY 和 testY 作为相应的标签。
data = np.array(data, dtype="float")/255.0
labels = np.array(labels,dtype ="uint8")
(trainX, testX, trainY, testY) = train_test_split(
data,labels,
test_size=0.2,
random_state=42)
train_datagen = keras.preprocessing.image.ImageDataGenerator(
zoom_range = 0.1,
width_shift_range = 0.2,
height_shift_range = 0.2,
horizontal_flip = True,
fill_mode ='nearest')
val_datagen = keras.preprocessing.image.ImageDataGenerator()
train_generator = train_datagen.flow(
trainX,
trainY,
batch_size=batch_size,
shuffle=True)
validation_generator = val_datagen.flow(
testX,
testY,
batch_size=batch_size)
Run Code Online (Sandbox Code Playgroud)
当我使用 ImageDataGenerator shuffle train_generator 时,图像是否仍然匹配相应的标签?验证数据集也应该打乱吗?
我目前正在尝试使用 Inception V3 和 2 个类创建图像分类模型。我有 1428 张图像,比例约为 70/30。当我运行模型时,我得到了相当高的损失以及恒定的验证准确性。是什么导致了这个恒定值?
data = np.array(data, dtype="float")/255.0
labels = np.array(labels,dtype ="uint8")
(trainX, testX, trainY, testY) = train_test_split(
data,labels,
test_size=0.2,
random_state=42)
img_width, img_height = 320, 320 #InceptionV3 size
train_samples = 1145
validation_samples = 287
epochs = 20
batch_size = 32
base_model = keras.applications.InceptionV3(
weights ='imagenet',
include_top=False,
input_shape = (img_width,img_height,3))
model_top = keras.models.Sequential()
model_top.add(keras.layers.GlobalAveragePooling2D(input_shape=base_model.output_shape[1:], data_format=None)),
model_top.add(keras.layers.Dense(350,activation='relu'))
model_top.add(keras.layers.Dropout(0.2))
model_top.add(keras.layers.Dense(1,activation = 'sigmoid'))
model = keras.models.Model(inputs = base_model.input, outputs = model_top(base_model.output))
for layer in model.layers[:30]:
layer.trainable = False
model.compile(optimizer …Run Code Online (Sandbox Code Playgroud) 在构建机器学习模型时,是否可以使用不可训练的参数?或者这会在模型中产生错误吗?我对实际上不可训练的参数是什么以及如何基于此修复模型感到困惑.
我正在尝试用两个类进行图像分类.我有1000张平衡类的图像.当我训练模型时,我得到的恒定验证精度低,但验证损失减少.这是过度拟合还是过度拟合的迹象?我还应该注意到,我正在尝试使用新类和不同的数据集重新训练Inception V3模型.
Epoch 1/10
2/2 [==============================]2/2 [==============================] - 126s 63s/step - loss: 0.7212 - acc: 0.5312 - val_loss: 0.7981 - val_acc: 0.3889
Epoch 2/10
2/2 [==============================]2/2 [==============================] - 70s 35s/step - loss: 0.6681 - acc: 0.5959 - val_loss: 0.7751 - val_acc: 0.3889
Epoch 3/10
2/2 [==============================]2/2 [==============================] - 71s 35s/step - loss: 0.7313 - acc: 0.4165 - val_loss: 0.7535 - val_acc: 0.3889
Epoch 4/10
2/2 [==============================]2/2 [==============================] - 67s 34s/step - loss: 0.6254 - acc: 0.6603 - val_loss: 0.7459 - …Run Code Online (Sandbox Code Playgroud)