使用fastai的Google colab中的语义细分

问题描述 投票:0回答:1

我一直在代码中获取不受支持的操作数类型'str'和'str'。我创建了一个数据集,用于校园内人行道的语义分割。我想训练该数据集,但是在尝试从带有标签的图像中获取标签以将它们与功能为'get_y_fn'的输入图像映射时出现错误。我想用Google Colab中的fastai库训练此数据集

%reload_ext autoreload
%autoreload 2
%matplotlib inline

    import fastai
from fastai import *
from fastai.vision import *

import pathlib
import os
from PIL import Image
import matplotlib.pyplot as plt
fnames = get_image_files(path_img)
lbl_names = get_image_files(path_lbl)
get_y_fn = lambda x: path_lbl/f'{x.stem}.png'
data = (SegmentationItemList.from_folder(path_img)
        .random_split_by_pct()
        .label_from_func(get_y_fn,classes=codes)
        .transform(get_transforms(),size=128,tfm_y=True)
        .databunch(bs=4))   
TypeError                                 Traceback (most recent call last)
<ipython-input-18-80efbaeba6e7> in <module>()
      2 data = (SegmentationItemList.from_folder(path_img)
      3         .split_by_rand_pct()
----> 4         .label_from_func(get_y_fn,classes=codes)
      5         .transform(get_transforms(),size=128,tfm_y=True)
      6         .databunch(bs=4))

3 frames
<ipython-input-10-44f94a438cac> in <lambda>(x)
----> 1 get_y_fn = lambda x: path_lbl/f'{x.stem}.png'

TypeError: unsupported operand type(s) for /: 'str' and 'str'

Program on google colab error

beginning of program

python-3.x deep-learning computer-vision google-colaboratory fast-ai
1个回答
0
投票

[通过Google Colab中的代码,我发现您一直在使用字符串作为路径,而如果要重现fastai代码,则它使用paths的路径对象而不是字符串,因此可以简单地替换:

get_y_fn = lambda x: path_lbl/f'{x.stem}_mask{x.suffix}'

get_y_fn = lambda x: path_lbl + "/" +f'{x.stem}_mask{x.suffix}'

由于path_lbl是字符串对象而不是路径对象。

您还可以使用python的pathlib库将path_lbl对象从字符串更改为路径。

© www.soinside.com 2019 - 2024. All rights reserved.