首页 > 编程知识 正文

FASTAIfastai 学习笔记lesson1,倪海厦针灸学习笔记1

时间:2023-05-03 10:23:03 阅读:186246 作者:3369

http://www.Sina.com/http://www.Sina.com /课程1详细说明(https://github.com/hiromis/notes/blob/master/lesson1. MD )

课程视频(https://www.bilibili.com/video/av 41718196/p=1)

课程的源代码(3359 github.com/fastai/course-v3/blob/master/nbs/dl1/lesson1- pets.ipynb ) )。

注意:不讨论fastai的安装。 网上已经介绍的非常详细

我上传了课程1中使用的数据集和模型。 大家都很容易使用。

3359 download.csdn.net/download/weixin _ 38538305/11474915

fastai 学习笔记——lesson1a,导入所需的软件包fromfastaiimport * fromfastai.vision import * fromfastai.datasets import * b,下载stark/. fastai/data/Mn ist _ sample ) ) path=untar_data ) Urls.pets ) ) POSIXpath )/hosixpath对应于下载的数据集#注:fastai为隐藏文件夹的显示方式为ctrlh ' ' $ mkdir-p/home/stark/. fastai/data $ CD/home/stark/. fastai/data。fast

# 1-从指定路径导入数据集,并使用正则表达式标记标签(路径中包含标签) data=image data bunch.from _ name _ re ) path:pathorstr,fnames 360 labels是回调函数data=image data bunch.from _ name _ func (这是path 3360。label _ func : callable,valid _ pct : float=* * kwargs #3-从指定路径读取数据集,其中labels为listimagedatabunch.from _ list (path : pathorstr,fnames :文件pathliste valid _ pct 3360 item _ cls : callable=none,* * kwargs (按#4- CSV中的数据地址写入数据data=image data bunch.from _ CSV (patattte ) ) ds_tfms=tfms size=26 ) # 5-将文件夹名称作为标签名称的data=image data bunch.from _ folder (path,ds_tfms=tfms,size=28 )

读取配置结构如下所示的数据

2.1 ) from_name_re方法

#1- from _ name _ re path='/home/stark/. fastai/data/Oxford-iiit-pet/' path _ anno='/home/stark/data images ' fnames=get _ image _ files (path_img ) )获取path _ img路径d .jpg$' #规范化表达式data=image data bunch.from _ name

data.classes))print(data.c)

输出结果为

可以看出这种方法适合所有训练数据都在train一个文件夹中并且标签信息在文件的名字中。

2.2)from_name_func

以读取MNIST_SAMPLE数据集为例

stark@爱笑的蜜蜂2:~/.fastai/data/mnist_sample$ tree -L 2.├── labels.csv├── train│   ├── 3│   └── 7└── valid ├── 3 └── 7 path = untar_data(URLs.MNIST_SAMPLE); #/home/stark/.fastai/data/mnist_samplefn_paths = [path/name for name in df['name']]; #/home/stark/.fastai/data/mnist_sample/train/3/7463.pngtfms = get_transforms(do_flip = False) #transforms函数跟读取数据无关,是对数据的预处理data = ImageDataBunch.from_name_func(path, fn_paths, ds_tfms = tfms, size = 24, label_func= lambda x:'3' if '/3/' in str(x) else '7')data.classes#输出为:#['3', '7']#label_func也可以定义为一个回调函数

2.3)from_list

创建一个list作为labels

path = untar_data(URLs.MNIST_SAMPLE); #/home/stark/.fastai/data/mnist_samplefn_paths = [path/name for name in df['name']]; #/home/stark/.fastai/data/mnist_sample/train/3/7463.pnglabels = [('3' if '/3/' in str(x) else '7') for x in fn_paths]data = ImageDataBunch.from_lists(path,fn_paths,labels=labels,ds_tfms = tfms,size = 24)print(data.classes)#输出['3', '7']

2.4)from_csv

从csv文件中读取所有数据的路径

csv的内容可以用如下代码查看

path = untar_data(URLs.MNIST_SAMPLE); #/home/stark/.fastai/data/mnist_sampledf = pd.read_csv(path/'labels.csv')df.head()

结果为

#这种调用方法时,path路径下一定要有名为 labels.csv的csv文件data = ImageDataBunch.from_csv(path, ds_tfms = tfms, size = 28)

2.5)from_folder

这是我最喜欢的一种读取方式,直接以文件夹来对数据进行label

path = untar_data(URLs.MNIST_SAMPLE)#/home/stark/.fastai/data/mnist_sampledata = ImageDataBunch.from_folder(path, ds_tfms = tfms, size = 26)

综上,fastai提供的导入数据的方式是非常丰富的,个人觉得from_folder和from_list是最实用的。

d、查看数据

导入数据后还需要查看数据是否导入正确,查看数据大概有一下几种

#查看某一个数据img, label = data.valid_ds[-1]img.show(title=str(label))

#随机查看多个data.show_batch(rows = 3, figsize = (5,5))

#查看标签data.classes#查看类别数data.c e、载入模型 # 载入模型 model.resnet34learn = create_cnn(data, models.resnet34, metrics=error_rate)# 训练模型learn.fit_one_cycle(4)

f、保存和载入模型 learn.save('/home/stark/Documents/JupyterNotebookFiles/fastai/stage-1')learn.load('/home/stark/Documents/JupyterNotebookFiles/fastai/stage-1') g、模型的性能查看 # Interpretationinterp = ClassificationInterpretation.from_learner(learn)# 画出loss最大的几张图interp.plot_top_losses(9, figsize=(15,15))# 画出混淆矩阵interp.plot_confusion_matrix(figsize = (12,12),dpi = 60)# 被分错的类别和次数interp.most_confused(min_val=2)

 

h、其他 #默认的训练为迁移学习,若想从新训练一个模型需要解冻权重参数learn = create_cnn(data, models.resnet18, metrics = accuracy)learn.unfreeze()learn.fit_one_cycle(2, max_lr=slice(1e-6,1e-4)) 2-总结

       尽管只是第一课,但是内容还是很多的。要老命了。

       模型的调用什么的还没讲到,不着急不着急~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。