Fasi.ai V1.0安装与使用

前言

fast.ai是一个深度学习的框架。它使用起来非常简单,是一种开箱即用的深度学习库。提供了海量的模型封装,还提供了一些pre-training的模型。开发者设计模型代价降低,还可以做一些迁移学习的研究。它也是一个开源的项目。官方Github
简单来说就是为了让大家快速的搭建模型,设计模型,这也是名称的由来。
本人使用到fasi.ai解决的主要需求就是快速搭建baseline模型,无论是写论文还是设计算法需要一些baseline对比佐证自己设计的算法优势。现在的网络结构越来越复杂,有时候搭建baseline并不是一件容易的事情。在此之前本人喜欢用keras+tensorflow。而fast.ai可以理解为以pytroch为后端的前端框架,这是我的使用感觉。废话不多说,直接上教程。
(注意:现在国内网络上大多数是fast.ai 0.7的版本,我使用的是fast.ai 1.0的正式版。区别还是比较大的。)

安装

再次强调这个安装过程只对于fast.ai v1.0及以上版本。

conda

这是本人强烈推荐的一种安装方式。Anaconda是一种管理 python 版本以及外部依赖库的工具。安装之后已经提供了海量的包。通过conda一系列命令可以创建python虚拟环境,下载包文件等。

安装Anancoda

Anancoda 官网 https://www.anaconda.com/。下载对应版本的安装文件即可。

Anancoda的两个版本

这里需要强调的是fast.ai v1.0需要Python> 3.6版本,所以我们选择Python 3.6 的版本。本人使用的是linux的服务器。使用

wget https://repo.continuum.io/archive/Anaconda3-2018.12-Linux-x86_64.sh

得到.sh脚本文件之后,使用命令。

bash Anaconda3-2018.12-Linux-x86_64.sh

然后一路回车,手速不要太快,这里有两个地方需要你输入yes。
第一个是同意条款,输入yes后回车。


安装示意图

需要注意的是第二个yes,意思是需不需要把Anaconda加入系统的环境变量中。

  • yes Anaconda会加入到系统的配置文件中,带来的结果是,在系统目录下使用python命令,会自动启动Anaconda中的python。而不是系统的自带的。简单来说就是取代了你系统中的Python,这意味着你之前的项目的环境会发生变化,带来的好处是可以使用conda命令了。
  • no 以后可以自己手动加入系统变量中,但是在没加入系统变量之前使用不了conda的命令了,并且需要使用其中的python也相对来说比较烦。
    我这里选择的yes。看客可以自行选择。
    安装成功后使用
conda list

如果没有报错就恭喜安装成功了。
为了下面步骤的进行。
需要把conda升级。

conda update conda

这里需要漫长时间检查环境配置的依赖关系,不要管它,也不要终止。升级成功后即可进行下面的步骤。

安装fastai

这里额外要注意服务器的CUDA版本要与pytroch cuda的版本相同即可(没有GPU的“贫民玩家”请忽略直接安装就可以了)。
如果大家的服务器CUDA版本是9.0以上。
直接使用命令

conda install -c pytorch -c fastai fastai

出去逛个街啥的估计就能够成功安装。(逛街之前需要输入一下yes),在这一步conda有可能改变python的版本,别慌。
但是有的童鞋的CUDA版本比较低怎么办?
首先需要确认CUDA的版本,然后使用命令。
比如说CUDA版本是8.0 那么就。

conda install -c pytorch pytorch cuda80

CUDA版本是10.0那么就

conda install -c pytorch pytorch cuda100

然后通过命令

conda install -c fastai fastai

它的安装相对来说也比较简单,但是如果你需要安装fast.ai <1.0版本的可不一样了。

pip安装

说实话,折腾了很久,我没有成功过,这里给出参考。大家成功了可以留言。(注意,给出的链接并非官方提供)

其他

在官方Github的README.md文件写的比较详细。

小例子

为了验证我们是否强烈建议大家使用jupyter玩fast.ai。fast.ai自带训练过程展示,看起来很高端炫酷。

启动jupyter-notebook

jupyter-notebook

如果服务器没有图形化的浏览器。可以通过下面命令把jupter-notebook暴露给外部浏览器访问。

jupyter-notebook --ip 0.0.0.0

会生成

http://0.0.0.0:8888/?token=f52ff040e4dc7d39b58ae1c9cb96d6******

把0.0.0.0改为服务器Ip,复制到浏览器即可访问。
比如服务器IP 10.89.198.1,URL为。

http://10.89.198.1:8888/?token=f52ff040e4dc7d39b58ae1c9cb96d6******

新建一个python文件

jupyter-notebook启动欢迎页面

导入包

如果大家真的想学习的话,需要弄清楚每个方法,每个类在哪个包里,这是比较重要的。有兴趣看一下源码会更好。
这个小例子用到的包就这么多。

from fastai.datasets import untar_data
from fastai.datasets import URLs
from fastai.vision.data import ImageDataBunch
from fastai.vision.learner import create_cnn
from fastai.vision import models
from fastai.metrics import accuracy

下载数据集

经典的mnist数据集

path = untar_data(URLs.MNIST_SAMPLE) # 数据存放在 ~/.fastai/dataz中 

数据处理

data = ImageDataBunch.from_folder(path)

建立模型

这里直接使用的是resnet18,它会自动下载pretrained resnet18 model的网络结构

learn = create_cnn(data, models.resnet18, metrics=accuracy) #文件存放在  ~/.torch/models

训练模型

learn.fit(1) #1 是一个epoch

结果

模型结果

后语

fast.ai 用于快速构建并且训练模型,所需代码量少,逻辑简单。
代码在Github上,喜欢就关注一下,持续更新新技术和项目。
https://github.com/SkullFang/Share-Technology/blob/master/fastai/fastai-demo_one.ipynb

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容