如何解决列表到字符串转换以用于 MobileNet 网络的交叉验证手动
我正在为我的网络 (CNN) 进行 K 折交叉验证。我正在手动处理它,而不是 scikit learn 中的函数。 以下是我的文件夹(折叠)4 个训练集和一个验证集的路径
training_set_cv = [r'C:\Users\320067835\Desktop\Thesis\Data\png_data_pre_cropped_resized\data_pre_cropped_resized_32_ cross_validate\T1',r'C:\Users\320067835\Desktop\Thesis\Data\png_data_pre_cropped_resized\data_pre_cropped_resized_32_ cross_validate\T2',r'C:\Users\320067835\Desktop\Thesis\Data\png_data_pre_cropped_resized\data_pre_cropped_resized_32_ cross_validate\T3',r'C:\Users\320067835\Desktop\Thesis\Data\png_data_pre_cropped_resized\data_pre_cropped_resized_32_ cross_validate\T4']
test_set_cv = r'C:\Users\320067835\Desktop\Thesis\Data\png_data_pre_cropped_resized\data_pre_cropped_resized_32_ cross_validate\TEST'
我已将上述内容从 str 转换为 list,以便我可以将所有 4 个文件夹作为一组数据传递给第一次迭代。
def __init__(self,training_set_cv,class_names,batch_size,shuffle,augmentation=None):
self.images_path = []
self.image_data = []
self.images = []
self.labels = []
self.image_name = []
self.image_already_used = {}
str_name = ""
image_list=[]
for a_class_num,a_class in enumerate(class_names):
if isinstance(training_set_cv,list):
for f in folder_path:
image_list += os.listdir(f)
else:
image_list = os.listdir(image_folder)
for imgs in image_list:
self.images_path += [os.path.join(image_list,imgs)]
self.image_data += [imread(os.path.join(image_list,imgs))]
self.images.append(imgs)
self.labels.append(a_class_num)
self.image_name += [os.path.basename(os.path.join(image_list,imgs))]
但由于它现在是一个列表,它不会转到类中的每个图像,而且我不能使用 os.path.join 来 d 与它的字符串相同
关于如何解决这个问题有什么建议吗?
这是我得到的错误:
image_list = os.path.join(image_list,a_class)
File "C:\Users\320067835\Anaconda3\lib\ntpath.py",line 78,in join
path = os.fspath(path)
TypeError: expected str,bytes,or os.pathLike object,not list
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。