美文网首页
Fasi.ai V1.0安装与使用

Fasi.ai V1.0安装与使用

作者: skullfang | 来源:发表于2019-01-31 16:22 被阅读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

    相关文章

      网友评论

          本文标题:Fasi.ai V1.0安装与使用

          本文链接:https://www.haomeiwen.com/subject/etvksqtx.html