画像の最小寸法をにサイズ変更する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)
簡単な答えは次のとおりです。Tensorflow:画像の中央の正方形の最大領域を切り抜きます
しかし、メソッドをtf.data.Dataset.map(transforms)
で使用すると、shape=(None,None,3)
内部から取得されlargest_sq_crop(image)
ます。メソッドを正常に呼び出すと、メソッドは正常に動作します。
の定義を含めることができます
—
ジャクブ
largest_sq_crop
か?
EagerTensors
内部で利用できないDataset.map()
ために形状が不明であるという事実に関係していると思います。回避策はありますか?