Fastai使Pythorch的深度学习更快、更准确、更容易

fastai的Python项目详细描述


build statuspypi fastai versionconda fastai version

anaconda服务器徽章fastai python compatibilityfastai license

Fastai

fastai库使用现代最佳实践简化了快速准确的神经网络训练。请参见fast ai网站开始。该库基于对在fast.ai上进行的深入学习最佳实践的研究,包括对fast.ai的"开箱即用"支持,以及对vision的支持,以及text.tabular,以及collab(协作过滤)模型。有关简要示例,请参阅示例文件夹;详细示例见完整的文档。例如,下面是如何使用resnet18来训练mnist模型的方法(从vision examplevision example):

path=untar_data(MNIST_PATH)data=image_data_from_folder(path)learn=cnn_learner(data,models.resnet18,metrics=accuracy)learn.fit(1)

注意course.fast.ai学生

本文档是为FastAI v1编写的,我们在当前版本中使用该版本,即course.fast.ai深度学习课程。如果您正在跟随course18.fast.a i" rel="nofollow">course18.fast.ai(即机器学习课程,未针对v1更新)的课程,则需要使用fastai 0.7;请按照安装说明进行操作。>这里

安装

注意:Fastai v1目前仅支持Linux,需要Pythorch v1Python 3.6或更高版本。windows支持正处于试验阶段:它应该工作得很好,但速度慢得多,测试得也不太好。自M以来acs目前没有良好的nvidia gpu支持,我们目前没有优先考虑mac开发。

fastai-1.x可以使用condapip包管理器安装,也可以从源代码安装。目前,您不能只运行install,因为您首先需要安装正确的pytorch版本-因此要安装fastai-1.x请使用您最喜欢的python包管理器选择下面的安装方法之一。请注意,pytorch v1和python 3.6是最低版本要求。

强烈建议您在虚拟环境中安装fastai及其依赖项(conda或其他),这样您就不会干扰整个系统的python包。这不是必须的,但是如果您遇到任何依赖项包的问题,请考虑使用一个新的虚拟环境,仅用于fastai

从pytorch-1.x开始,您不再需要安装特殊的pytorch cpu版本。取而代之的是使用普通的pytorch,它可以使用gpu也可以不使用gpu。但是,也可以安装CPU构建。

如果遇到安装问题,请阅读安装问题

如果您计划在Jupyter笔记本电脑环境中使用fast ai,请确保同时安装相应的软件包

更高级的安装问题,例如仅安装部分依赖项,将在专用的安装文档中介绍。

Conda安装

conda install -c pytorch -c fastai fastai

这将安装使用最新版本的cudatoolkit构建的pytorch。如果需要更高或更低版本的cuda xx构建(例如cuda 9.0),请按照此处的说明安装所需的pytorch构建。

请注意,jpeg解码可能是一个瓶颈,特别是如果你有一个快速的gpu。您可以选择安装优化的JPEG解码器,如下所示(Linux):

conda uninstall --force jpeg libtiff -y
conda install -c conda-forge libjpeg-turbo
CC="cc -mavx2" pip install --no-cache-dir -U --force-reinstall --no-binary :all: --compile pillow-simd

如果只关心更快的jpeg解压,那么在上面的最后一个命令中,它可以是hellowhellow simd,后者可以加快其他图像处理操作。有关完整的故事,请参见枕头simd

pypi安装

pip install fastai

默认情况下,pip将安装最新的pytorch和最新的cudatoolkit。如果您的硬件不支持最新的cudatoolkit,请按照此处的说明安装一个适合您硬件的pytorchbuild。

错误修复安装

如果在git中修复了一个bug,并且您不能等到新版本发布后再安装,那么您可以使用:

pip install git+https://github.com/fastai/fastai.git

开发者安装

以下说明将导致apip editable install,以便您可以随时git pull,并且您的环境将自动获得更新:

git clone https://github.com/fastai/fastai
cd fastai
tools/run-after-git-clone
pip install -e ".[dev]"

接下来,您可以通过启动jupyter笔记本来测试构建是否有效:

jupyter notebook

并执行一个示例笔记本。例如加载examples/tabular.ipynb并运行它。

请参考contribution.md开发者注意事项了解如何为fastai项目做出贡献的更多详细信息。

从源头建设

如果由于任何原因,您不能使用预打包的软件包,而必须从源代码构建,则此部分适用于您。

  1. 要从源代码构建pytorch,请遵循完整的说明。请记住首先按照建议安装cuda、cudnn和其他必需的库-如果没有这些库内置到pytorch

  2. 接下来,您还需要从源代码构建torchvision

    git clone https://github.com/pytorch/vision
    cd vision
    python setup.py install
    
  3. 当安装了pytorchtorchvision时,首先测试是否可以加载这些库:

    import torch
    import torchvision
    

    以验证它们是否已正确安装

    最后,通过预先打包的pip或conda构建或从源代码安装("开发人员安装"),继续正常安装fastai。

  4. < > >

    安装问题

    如果安装过程失败,首先确保系统受支持" rel="nofollow">系统受支持。如果问题仍未解决,请参阅故障排除文档

    如果您遇到conda的安装问题,请确保您有最新的conda客户机(conda install也将进行更新):

    path=untar_data(MNIST_PATH)data=image_data_from_folder(path)learn=cnn_learner(data,models.resnet18,metrics=accuracy)learn.fit(1)
    0

    是否支持我的系统?

    1. python:您需要使用python 3.6或更高版本

    2. CPU或GPU

      pytorch二进制软件包自带了自己的cuda、cudnn、nccl、mkl和其他库,因此如果您不需要其他库,就不必安装系统范围内的nvidia的cuda和相关库。如果您已经安装了它们,那么在系统范围内安装了哪个nvidia的cuda版本库并不重要。您的系统可能有CUDA 9.0库,而且您仍然可以使用使用CUDA 10.0库构建的pytorch没有任何问题,因为pytorch二进制包是自包含的。

      唯一的要求是您已经正确安装和配置了nvidia驱动程序。通常,您可以通过运行nvidia smi来测试它。虽然此应用程序可能在您的系统上不可用,但很可能如果它不工作,则说明您的nvidia驱动程序配置不正确。请记住,在安装NVIDIA驱动程序后,始终需要重新启动。

    3. 操作系统:

      由于Fastai-1.0依赖于Pythorch-1.0,您需要首先安装Pythorch-1.0。

      截至目前,pytorch.org的1.0版本支持:

      <表><广告>平台 < > GPU < /Th ><> CPU < /广告><正文>Linux二进制二进制 MAC < /TD>来源二进制窗口二进制二进制

      图例:二进制=可以直接安装,=需要从源构建。

      如果您的系统没有可用的pytorch预览conda或pip包,您仍然可以从源代码构建它。

    4. 你怎么知道要选择哪个pytorch cuda版本?

      这取决于安装的nvidia驱动程序的版本。以下是预构建pytorch版本支持的cuda版本的要求:

      <表><广告>CUDA工具包 nvidia(Linux x86_64)<正文>CUDA 10.0>;=410.00CUDA 9.0>;=384.81CUDA 8.0>;=367.48

      因此,如果nvidia驱动程序小于384,则只能使用cuda 8.0。当然,如果您的卡支持,您可以将您的驱动程序升级到最新的驱动程序。

      您可以在这里找到一个包含所有变体的完整表格。

      如果使用NVIDIA驱动程序410+,则很可能需要安装cudatoolkit=10.0pytorch变量,通过:

      path=untar_data(MNIST_PATH)data=image_data_from_folder(path)learn=cnn_learner(data,models.resnet18,metrics=accuracy)learn.fit(1)
      1

      或者如果您需要较低版本,请使用以下选项之一:

      path=untar_data(MNIST_PATH)data=image_data_from_folder(path)learn=cnn_learner(data,models.resnet18,metrics=accuracy)learn.fit(1)
      2

      有关其他选项,请参阅可用pytorch变体的完整列表。

    5. < > >

      更新

      为了更新您的环境,只需以与初始安装完全相同的方式安装fastai即可。

      顶层文件environment.ymlenvironment cpu.yml属于旧的fastai(0.7)。conda env update不再是更新fastai-1.x环境的方法。这些文件仍然存在,因为Fastai Course-v2视频指令依赖于此设置。最终,一旦fastai课程v3 p1和p2完成,它们可能会被移动到它们所属的位置-在old/下。

      贡献指南

      如果您想为FastAI贡献一份力量,请务必查看贡献指南。本项目遵循Fastai的行为准则。通过参与,您将遵守此准则。

      我们使用github问题来跟踪请求和错误,因此请参见fast ai forum以了解一般问题和讨论。

      Fastai项目致力于遵守开源软件开发中公认的最佳实践:

      历史记录

      更改的详细历史记录可以在这里找到。

      版权所有

      版权所有2017年以后,fast.ai,inc.根据Apache许可证2.0版(以下简称"许可证")获得许可;除非符合许可证,否则您不得使用此项目的文件。此存储库的许可证文件中提供了许可证的副本。

      欢迎加入QQ群-->: 979659372 Python中文网_新手群

      推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应