未实现错误:未实现文件系统方案“[local]”

2024-06-02 22:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在TPU中实现TensorFlow时出错

UnimplementedError: File system scheme '[local]' not implemented (file: '1.png')

我知道这个问题已经得到了回答,但我的问题不同, 当我这样做的时候,我得到了这个错误

for i, j in train_dataset.take(3):
    print(i,j)

它与train_dataset.take(3)一起工作

这里是我的功能

def decode(img,image_size=(IMG_SIZE, IMG_SIZE)):
    bits = tf.io.read_file(img)
    image = tf.image.decode_jpeg(bits, channels=3)
    image = tf.cast(image, tf.float32) / 255.0
    image = tf.image.resize(image, image_size)
    
    image = tf.image.random_flip_left_right(image, seed=2020)
    image = tf.image.random_flip_up_down(image, seed=2020)
    image = tf.image.random_crop(image,size=[IMG_SIZE,IMG_SIZE,3],seed=2020 )
    image = tf.image.random_brightness(image,max_delta=0.5 )
    image = tf.image.rot90(image)
    return image

def decode_image(img,labels=None ):
    if labels is None:
        return decode(img)
    else:
        return decode(img),labels 

train_image=tf.data.Dataset.from_tensor_slices((train.iloc[:,0],train.iloc[:,1::] ))
train_dataset=train_image.map(decode_image, num_parallel_calls=AUTO).repeat().shuffle(512).batch(BATCH_SIZE).prefetch(AUTO)
test_image=tf.data.Dataset.from_tensor_slices((test.iloc[:,0]))
test_dataset=test_image.map(decode_image, num_parallel_calls=AUTO).batch(BATCH_SIZE)

我应该如何解决它

这可能是路径问题。因此,我添加了如何设置路径 这就是目录的外观

weights
images
-train
--train
---train
----img1
----img2
---csv
-val
--val
---img1

当我跑的时候

GCS_DS_PATH = KaggleDatasets().get_gcs_path('images')
!gsutil ls $GCS_DS_PATH

我被跟踪了

gs://kds-aab923e1c9bc934f088881f1e537365b8f18fe192b3b3dc14e272a37/train/
gs://kds-aab923e1c9bc934f088881f1e537365b8f18fe192b3b3dc14e272a37/val/

这就是我的路径设置方式

def train_format_path(st):
    return GCS_DS_PATH + '/train/train/train/' + st 

def test_format_path(st):
    return GCS_DS_PATH + '/val/val/' + st 

train_paths = train.ID.apply(train_format_path).values
test_paths = test.ID.apply(test_format_path).values

train_paths[0] 我得到

'gs://kds-aab923e1c9bc934f088881f1e537365b8f18fe192b3b3dc14e272a37/train/train/train/1.png'

Tags: pathtestimageimgsizereturntfdef
1条回答
网友
1楼 · 发布于 2024-06-02 22:25:52

正如@Allen Wang所建议的,解决方案是使用train_paths而不是火车通过图像

这就是我所做的改变,让它工作

    train_image=tf.data.Dataset.from_tensor_slices((train_paths,train.iloc[:,1::] ))
    train_dataset=train_image.map(decode_image, num_parallel_calls=AUTO).repeat().shuffle(512).batch(BATCH_SIZE).prefetch(AUTO)
    test_image=tf.data.Dataset.from_tensor_slices((test_paths))
    test_dataset=test_image.map(decode_image, num_parallel_calls=AUTO).batch(BATCH_SIZE)

相关问题 更多 >