fit_generator和fit的精度不同

张在恩

++ fit_generator已修改为适合。

数据集的总数为12,507,“真”为6,840,“假”为7,056。

数据集配置相同。型号是一样的。

一个模型是:

model = Sequential()

model.add(Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), activation='relu', padding='same', input_shape=(192, 112, 1)))
model.add(Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2), padding='same'))
.
.
.
model.add(Flatten())

model.add(Dense(128, activation='relu'))
model.add(Dense(2, activation='softmax'))

model.summary()
model.compile(optimizer=tf.keras.optimizers.Adam(), loss=tf.keras.losses.categorical_crossentropy, metrics=['accuracy'])

history = model.fit(train_X, train_Y, epochs=15, batch_size=64, validation_split=0.2, verbose=2)

使用拟合时的准确性接近100%。

B Modeil是:

train_datagen = ImageDataGenerator(rescale=1./255)
val_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)

train_gen = train_datagen.flow_from_directory(
TRAIN_PATH,
target_size=(192, 112),
classes=['true', 'false'],
class_mode='categorical',
batch_size=64,
color_mode='grayscale',
shuffle=True)

val_gen = val_datagen.flow_from_directory(
VAL_PATH,
target_size=(192, 112),
classes=['true', 'false'],
class_mode='categorical',
batch_size=64,
color_mode='grayscale',
shuffle=False)

test_gen = val_datagen.flow_from_directory(
VAL_PATH,
target_size=(192, 112),
classes=['true', 'false'],
class_mode='categorical',
batch_size=64,
color_mode='grayscale',
shuffle=False)

model = Sequential()

model.add(Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), activation='relu', padding='same', input_shape=(192, 112, 1)))
model.add(Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2), padding='same'))
.
.
.
model.add(Flatten())

model.add(Dense(128, activation='relu'))
model.add(Dense(2, activation='softmax'))

model.compile(optimizer=tf.keras.optimizers.Adam(),
          loss=tf.keras.losses.categorical_crossentropy,
          metrics=['accuracy'])

model.summary()

history = model.fit(
train_gen,
validation_data=val_gen,
epochs=15,
steps_per_epoch=len(train_gen)//64,  # 64 is the batch_size
validation_steps=len(val_gen)//64,
verbose=2)

model.evaluate(test_gen,
           batch_size=64,
           verbose=2)

在这种情况下,精度接近50%。

A模型和B模型不是一样吗?为什么还会出现其他精度?

++以下是从A模型加载数据的方法:

true_Data_list = np.array(os.listdir(TRUE_DIR))
false_Data_list = np.array(os.listdir(FALSE_DIR))

 # -------------------------------- Load True Set ----------------------------------------- #
for index in range(len(true_Data_list)):  # 이미지 폴더 리스트 만들기
    path_true = os.path.join(TRUE_DIR, true_Data_list[index])
    image_true = ImageOps.grayscale(Image.open(path_true))  # True 이미지
    image_true = np.reshape(np.asarray(image_true), (192, 112, 1)).astype(np.float32)
    data_X.append([np.array(image_true)])
    data_Y.append([1, 0])

加载错误集以相同的方式重复。

然后,我将重塑和分裂。

data_X = np.reshape(data_X, (-1, 192, 112, 1)).astype(np.float32)
data_Y = np.reshape(data_Y, (-1, 2)).astype(np.int8)

train_X, test_X, train_Y, test_Y = train_test_split(data_X, data_Y, test_size=0.25, shuffle=True, random_state=625)

在B型号的情况下

TRAIN_PATH = 'dataset/train'
VAL_PATH = 'dataset/val'
TEST_PATH = 'dataset/test'

现在,创建的PATH将位于

train_gen = train_datagen.flow_from_directory(TRAIN_PATH, ...

每个PATH包含正确和错误的文件夹

图片将在1个时期内通过详细= 2输出。在此处输入图片说明

Frightera

fit_generator不推荐使用。尽管它们应该给出稍微相同的结果。你有错字?

train_batch_size = len(train_X) // 64
test_batch_size = len(test_X) // 64

他们应该是steps_per_epoch,而适合您设置为batch_size我不确定这两种情况下是否都可以扩充数据,但是在第一种方法中,您使用的批量大小很大。在两种情况下,您在一个纪元中看到的数据点是不同的。第二种方法似乎更可靠,也可以fit()与生成器一起使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Keras fit_generator中将shuffle设置为True时,精度会降低

来自分类Dev

Keras fit_generator运行非常缓慢

来自分类Dev

Keras:如何将fit_generator与不同类型的多个输出一起使用

来自分类Dev

Keras fit_generator 使用输入和输出图像生成器“ndim”错误

来自分类Dev

Keras ---在fit_generator()期间冻结训练

来自分类Dev

使用.fit_generator()在keras中训练GAN

来自分类Dev

AsyncResult在tensorflow keras的fit_generator中意外挂起

来自分类Dev

将批量数据发送到fit_generator

来自分类Dev

fit_generator挂在R的第一步

来自分类Dev

使用class_weight平衡数据-.fit_generator()

来自分类Dev

Keras fit_generator(),这是正确的用法吗?

来自分类Dev

调用 fit_generator 时出错:python Tensorflow

来自分类Dev

将keras fit_generator与max_queue_size,worker和use_multiprocessing一起使用

来自分类Dev

Keras `fit_generator` 的验证准确度低,而 `fit` 则不然

来自分类Dev

使用fit_generator的训练模型不显示val_loss和val_acc并在第一个时期中断

来自分类Dev

Keras fit_generator()在Colab上不显示准确性

来自分类Dev

使用Tensorflow将学习率添加到fit_generator的历史对象

来自分类Dev

使用keras fit_generator的Tensorboard回调,``函数''没有属性``fetch_callbacks''

来自分类Dev

在Tensorflow中应用数据扩充时使用fit_generator()拟合模型时出错

来自分类Dev

Python无法将fit_generator应用于具有多个输入的keras模型

来自分类Dev

使用fit_generator()时如何获取y_true,y_pred?

来自分类Dev

使用 fit_generator 时,Keras 模型的批量大小为 1

来自分类Dev

是否有适用于 use_multiprocessing=True 的 fit_generator 的工作示例?

来自分类Dev

使用fit_generator拟合keras模型时如何修复“MemoryError”?

来自分类Dev

ValueError:使用Fit_generator时,生成器的输出应为元组`(x,y,sample_weight)`或`(x,y)`。

来自分类Dev

Keras:使用model.train_on_batch()和model.fit()获得不同的精度。可能是什么原因以及如何解决?

来自分类Dev

为什么sklearn LatentDirichletAllocation的fit和partial_fit返回不同的结果?

来自分类Dev

将model.fit_generator转换为model.fit

来自分类Dev

Keras fit_generator 一次训练一个样本,而我从生成器中输出不止一个样本

Related 相关文章

  1. 1

    在Keras fit_generator中将shuffle设置为True时,精度会降低

  2. 2

    Keras fit_generator运行非常缓慢

  3. 3

    Keras:如何将fit_generator与不同类型的多个输出一起使用

  4. 4

    Keras fit_generator 使用输入和输出图像生成器“ndim”错误

  5. 5

    Keras ---在fit_generator()期间冻结训练

  6. 6

    使用.fit_generator()在keras中训练GAN

  7. 7

    AsyncResult在tensorflow keras的fit_generator中意外挂起

  8. 8

    将批量数据发送到fit_generator

  9. 9

    fit_generator挂在R的第一步

  10. 10

    使用class_weight平衡数据-.fit_generator()

  11. 11

    Keras fit_generator(),这是正确的用法吗?

  12. 12

    调用 fit_generator 时出错:python Tensorflow

  13. 13

    将keras fit_generator与max_queue_size,worker和use_multiprocessing一起使用

  14. 14

    Keras `fit_generator` 的验证准确度低,而 `fit` 则不然

  15. 15

    使用fit_generator的训练模型不显示val_loss和val_acc并在第一个时期中断

  16. 16

    Keras fit_generator()在Colab上不显示准确性

  17. 17

    使用Tensorflow将学习率添加到fit_generator的历史对象

  18. 18

    使用keras fit_generator的Tensorboard回调,``函数''没有属性``fetch_callbacks''

  19. 19

    在Tensorflow中应用数据扩充时使用fit_generator()拟合模型时出错

  20. 20

    Python无法将fit_generator应用于具有多个输入的keras模型

  21. 21

    使用fit_generator()时如何获取y_true,y_pred?

  22. 22

    使用 fit_generator 时,Keras 模型的批量大小为 1

  23. 23

    是否有适用于 use_multiprocessing=True 的 fit_generator 的工作示例?

  24. 24

    使用fit_generator拟合keras模型时如何修复“MemoryError”?

  25. 25

    ValueError:使用Fit_generator时,生成器的输出应为元组`(x,y,sample_weight)`或`(x,y)`。

  26. 26

    Keras:使用model.train_on_batch()和model.fit()获得不同的精度。可能是什么原因以及如何解决?

  27. 27

    为什么sklearn LatentDirichletAllocation的fit和partial_fit返回不同的结果?

  28. 28

    将model.fit_generator转换为model.fit

  29. 29

    Keras fit_generator 一次训练一个样本,而我从生成器中输出不止一个样本

热门标签

归档