我一直在代码中得到不受支持的操作数类型'str'和'str'。 我创建了一个数据集,用于校园内人行道的语义分割。我想训练这个数据集,但是在尝试从带有标签的图像中获取标签以将它们与功能为'get_y_fn'的输入图像映射时出现错误。我想用Google Colab中的fastai库训练该数据集
weights = [2, 2, 2, 3, 3, 4]
%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))
答案 0 :(得分:0)
在Google colab中遍历代码时,我发现您一直在使用字符串作为路径,而如果要重现fastai代码,则它将路径对象用于路径,而不是字符串,因此您可以简单地替换:
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对象从字符串更改为路径。