मैं इसके tensorflow
बराबर करने की कोशिश कर रहा हूं torch.transforms.Resize(TRAIN_IMAGE_SIZE)
, जो सबसे छोटी छवि आयाम का आकार बदलता है TRAIN_IMAGE_SIZE
। कुछ इस तरह
def transforms(filename):
parts = tf.strings.split(filename, '/')
label = parts[-2]
image = tf.io.read_file(filename)
image = tf.image.decode_jpeg(image)
image = tf.image.convert_image_dtype(image, tf.float32)
# this doesn't work with Dataset.map() because image.shape=(None,None,3) from Dataset.map()
image = largest_sq_crop(image)
image = tf.image.resize(image, (256,256))
return image, label
list_ds = tf.data.Dataset.list_files('{}/*/*'.format(DATASET_PATH))
images_ds = list_ds.map(transforms).batch(4)
इसका सरल उत्तर यहां है: टेंसरफ्लो: छवि का सबसे बड़ा केंद्रीय वर्ग क्षेत्र
लेकिन जब मैं विधि का उपयोग करता tf.data.Dataset.map(transforms)
हूं, तो मैं shape=(None,None,3)
अंदर से प्राप्त करता हूं largest_sq_crop(image)
। जब मैं इसे सामान्य रूप से कहता हूं तो विधि ठीक काम करती है।
largest_sq_crop
?
EagerTensors
के भीतर उपलब्ध नहीं हैंDataset.map()
तो आकार अज्ञात है। क्या आसपास कोई काम है?