[英]How to load images and text labels for CNN regression from different folders
我有两个文件夹,X_train 和 Y_train。 X_train 是图像,Y_train 是矢量和.txt 文件。 我尝试训练 CNN 进行回归。
我不知道如何获取数据和训练网络。 当我使用“ImageDataGenerator”时,它假设 X_train 和 Y_train 文件夹是类。
import os
import tensorflow as tf
os.chdir(r'C:\\Data')
from glob2 import glob
x_files = glob('X_train\\*.jpg')
y_files = glob('Y_rain\\*.txt')
上面,我找到了它们的目的地,我怎样才能带走它们并为 model.fit 做好准备? 谢谢你。
确保x_files
和y_files
排序在一起,然后你可以使用这样的东西:
import tensorflow as tf
from glob2 import glob
import os
x_files = glob('X_train\\*.jpg')
y_files = glob('Y_rain\\*.txt')
target_names = ['cat', 'dog']
files = tf.data.Dataset.from_tensor_slices((x_files, y_files))
imsize = 128
def get_label(file_path):
label = tf.io.read_file(file_path)
return tf.cast(label == target_names, tf.int32)
def decode_img(img):
img = tf.image.decode_jpeg(img, channels=3)
img = tf.image.convert_image_dtype(img, tf.float32)
img = tf.image.resize(images=img, size=(imsize, imsize))
return img
def process_path(file_path):
label = get_label(file_path)
img = tf.io.read_file(file_path)
img = decode_img(img)
return img, label
train_ds = files.map(process_path).batch(32)
然后,可以将train_ds
传递给model.fit()
并将返回 32 对图像、标签的批次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.