【tensorflow2.0】实例6

    科技2025-04-28  12

    图片生成器的一个特性是可以把它指向一个目录,然后它的子目录将自动生成标签。

    from tensorflow.keras,preprocessing.image import ImageDataGenerator

    图片生成器在keras,preprocessing.image中,可以像如下这样实例化一个图片生成器。

    train_datagen = ImageDataGenerator(rescale = 1./255) train_generator = train_datagen.flow_from_directory( train_dir, target_size = (300, 300), batch_size = 128, class_mode= 'binary' )

    将rescale传递给它使其数据标准化,然后可以调用它上面的目录流方法,让它从该目录及其子目录加载图像。 把子目录指向生成器是一个常见错误!!!应该将其指向包含你的图像的子目录的那个目录!子目录的名称将是它包含的图片的标签,所以指向正确的目录并将其放到第二个参数 train_dir。 现在,图像在训练一个神经网络时,可能会以各种形状还有大小以及非巧合的方式出现,输入数据都具有相同的大小,这时就需要用代码target_size = (300, 300)调整,这个代码在你加载时图片就已经调整好了,所以不需要再在文件系统处理数以千计的图片;这样在运行时进行测试的好处是可以在不影响原数据的情况下,使用不同的大小进行测试。现在数据集已经是300×300,当使用其它数据集时,它们可能不总是大小均匀的,所以这一步很有用。 图片将为训练和验证批次载入,比一个一个的更加高效。现在通过代码batch_size = 128,有一个完整的科学计算批次大小,也可以测试不同的大小,来观察通过更改此参数对性能的影响。 class_mode= 'binary’这是一个分类模型,此处是一个二元分类,即它选择了两种不同的东西。

    验证生成器步骤类似:

    test_datagen = ImageDataGenerator(rescale = 1./255) validation_generator = test_datagen.flow_from_directory( validation_dir, target_size = (300, 300), batch_size = 32, class_mode= 'binary' )

    validation_dir让其指向一个不同的目录,即一个包含测试图像子目录的目录。

    Processed: 0.011, SQL: 8