python - 这段代码是否增加了输入数据?
问题描述
model=tf.keras.Sequential(
[
Conv2D(filters=1, kernel_size=(3, 3), activation='relu', strides=1, padding='same'),
MaxPooling2D(pool_size=(4, 4)),
Flatten(),
Dense(6,activation="softmax")
])
model.compile(loss='CategoricalCrossentropy',
optimizer='adam',
metrics=['accuracy'])
train_datagen = ImageDataGenerator( # Real time data augmentation
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
train_generator = train_datagen.flow_from_directory( # Loads the File which contains the images.
'train', # Returns x (numpy array containing a batch of images)
target_size=(150, 150), # and correcponding labels
class_mode='categorical')
model.fit( train_generator,
batch_size=100,
epochs=1)
此代码的输出不提供有关数据增强的任何信息。那么任何人都可以澄清这段代码是否增加了可用数据?
解决方案
下面的代码扩充了您编写的输入图像
train_datagen = ImageDataGenerator(# Real time data augmentation
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
但是,没有内置的方法来测试数据是否已被扩充。您只能检查数据的结果以了解它是否已增强并获取您打算获取的任何信息。
例如,了解rescale=1./255
扩充是否有效的一种方法是打印出 的结果train_generator
以检查值是否介于0 - 1 (normalized)
或之间0 - 255 (default)
。
image, label = next(train_generator) # return a single iteration batch
print(image.shape) #single batch list, if batch not specified (default is 32)
print(image[0].shape) # single image shape
print(image[0]) # single image output
你会得到一个看起来像这样的输出
这表明调整大小的图像有效,否则你会得到这样的东西
这表明调整大小的图像不适用。我相信您可以对您打算确认的其他增强使用类似的方法
推荐阅读
- java - 通过 Netty 连接时未应用代理规则
- javascript - 用于自动幻灯片的 javascript 和 jquery 之间有什么区别吗?
- apache-kafka - Kafka Streams:每日和每月转换
- r - 在 R 中查找中心位置坐标 - 地理空间分析
- android - InputMethodService 的仪器测试用例
- java - java的静态方法中的参数是线程安全的吗?
- python - 排序坐标
- kubernetes - 与 prometheus 一起使用时,kubernetes cAdvisor 是否也包含主机 (OS) 指标?
- android - 预览帧在 camera2 API 中冻结
- php - 从字段数据库中获取数据