大兴专业网站建设价钱,包装设计作品,wordpress php5.3.5,网站怎么提高收录一、项目地址
GitHub - LooKing9218/UIOS 二、label制作 将训练、验证、测试数据的分类信息转换入.csv文件中#xff0c;运行如下脚本即可#xff1a;
import os
import csv#要读取的训练、验证、测试文件的目录#xff0c;该文件下保存着以各个类别命名的文件夹和对应的分…
一、项目地址
GitHub - LooKing9218/UIOS 二、label制作 将训练、验证、测试数据的分类信息转换入.csv文件中运行如下脚本即可
import os
import csv#要读取的训练、验证、测试文件的目录该文件下保存着以各个类别命名的文件夹和对应的分类图片
root_pathr/media/*********************/train
#类别种类
classes[cls1,cls2]def get_Write_file_infos(path):# 文件信息列表file_infos_list[]typeclothesos.listdir(path)for ii in typeclothes:everyfileos.path.join(path , ii)for root, dirnames, filenames in os.walk(everyfile):for filename in filenames:file_infos {}dirnameroot#根据自己的需求更改路径地址filename1 train/ii/ filename#.split(.jpg)[0]flag filename1[-1]file_infos[ImageId] filename1file_infos[Flag] classes.index(ii)#将数据追加字典到列表中file_infos_list.append(file_infos)return file_infos_list#写入csv文件
def write_csv(file_infos_list):with open(train_label.csv,a,newline) as csv_file_train:csv_writer csv.DictWriter(csv_file_train,fieldnames[ImageId,Flag])csv_writer.writeheader()for each in file_infos_list:print(each)csv_writer.writerow(each)def main():file_infos_list get_Write_file_infos(root_path)write_csv(file_infos_list)if __name__ __main__:main()print(The End)
生成情况如下 三、运行程序 1修改参数文件 utils/config.py
# -*- coding: utf-8 -*-
class DefaultConfig(object):net_work ResUnNet50num_classes 2num_epochs 100batch_size 256validation_step 1root /media/code/train_file train_label.csvval_file val_label.csvtest_file test_label.csvlr 1e-4lr_mode polymomentum 0.9weight_decay 1e-4save_model_path ./Model_Saved.format(net_work,lr)log_dirs ./Logs_Adam_0304pretrained True# Falsepretrained_model_path /media/code/UIOS-master/Trained/archive/data/99843712 #Nonecuda 0num_workers 4use_gpu Truetrained_model_path predict_fold predict_mask
(2)运行 命令
python train.py
3运行界面 四、踩坑记录 问题原因ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.
解决方法 1网上看了很多 方法1添加 try-except try:epoch_train_auc metrics.roc_auc_score(labels, outputs)writer.add_scalar(Train/train_auc, float(epoch_train_auc),epoch)print(loss for train : {}{}.format(loss_train_mean,round(epoch_train_auc,6)))except ValueError:pass方法2DataLoader的参数设置shuffleTrue train_loader DataLoader(DatasetCFP(rootargs.root,modetrain,data_fileargs.train_file,),batch_sizeargs.batch_size, shuffleTrue, pin_memoryTrue)val_loader DataLoader(DatasetCFP(rootargs.root,modeval,data_fileargs.val_file,),batch_sizeargs.batch_size, shuffleTrue, pin_memoryTrue)test_loader DataLoader(DatasetCFP(rootargs.root,modetest,data_fileargs.test_file,),batch_sizeargs.batch_size, shuffleTrue, pin_memoryTrue) 方法3增大batch_size (2)我的方法: 其实是我马虎大意 修改好config.py中的num_classes参数就行了 见谅不好意思~(▽)~*