精华内容
下载资源
问答
  • 第二版出版以后,敲代码很多遍,作为标准;把代码背下来,背代码比背公式要好一点。
  • 详细描述了各系统的配置教程,本人在学习过程中并没有找到详细的教程,都是东拼西凑配置出来的,过程属实困难。配置好了之后反倒是在项目里找到了完整的配置教程(套娃警告),因此把这个md文档发出来以供参考。 ...

    声明:本文档来自视频(https://www.bilibili.com/video/av63439164?t=1217)中提到的项目中的install.md。详细描述了各系统的配置教程,本人在学习过程中并没有找到详细的教程,都是东拼西凑配置出来的,过程属实困难。配置好了之后反倒是在项目里找到了完整的配置教程(套娃警告),因此把这个md文档发出来以供参考。

    获取和运行本书的代码

    本节将介绍如何获取本书的代码和安装运行代码所依赖的软件。虽然跳过本节不会影响后面的阅读,但我们还是强烈建议读者按照下面的步骤来动手操作一遍。本书大部分章节的练习都涉及改动代码并观察运行结果。因此,本节是完成这些练习的基础。

    获取代码并安装运行环境

    本书的内容和代码均可在网上免费获取。我们推荐使用conda来安装运行代码所依赖的软件。conda是一个流行的Python包管理软件。Windows和Linux/macOS用户可分别参照以下步骤。

    Windows用户

    第一次运行需要完整完成下面5个步骤。如果是再次运行,可以忽略前面3步的下载和安装,直接跳转到第四步和第五步。

    第一步是根据操作系统下载并安装Miniconda,在安装过程中需要勾选“Add Anaconda to the system PATH environment variable”选项(如当conda版本为4.6.14时)。

    第二步是下载包含本书全部代码的压缩包。我们可以在浏览器的地址栏中输入 https://zh.d2l.ai/d2l-zh-1.0.zip 并按回车键进行下载。下载完成后,创建文件夹“d2l-zh”并将以上压缩包解压到这个文件夹。在该目录文件资源管理器的地址栏输入cmd进入命令行模式。

    第三步是使用conda创建虚拟(运行)环境。conda和pip默认使用国外站点来下载软件,我们可以配置国内镜像来加速下载(国外用户无须此操作)。

    # 配置清华PyPI镜像(如无法运行,将pip版本升级到>=10.0.0)
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

    接下来使用conda创建虚拟环境并安装本书需要的软件。这里environment.yml是放置在代码压缩包中的文件。使用文本编辑器打开该文件,即可查看运行压缩包中本书的代码所依赖的软件(如MXNet和d2lzh包)及版本号。

    conda env create -f environment.yml
    

    若使用国内镜像后出现安装错误,首先取消PyPI镜像配置,即执行命令pip config unset global.index-url。然后重试命令conda env create -f environment.yml

    第四步是激活之前创建的环境。激活该环境是能够运行本书的代码的前提。如需退出虚拟环境,可使用命令conda deactivate(若conda版本低于4.4,使用命令deactivate)。

    conda activate gluon  # 若conda版本低于4.4,使用命令activate gluon
    

    第五步是打开Jupyter记事本。

    jupyter notebook
    

    这时在浏览器打开 http://localhost:8888 (通常会自动打开)就可以查看和运行本书中每一节的代码了。

    本书中若干章节的代码会自动下载数据集和预训练模型,并默认使用美国站点下载。我们可以在运行Jupyter前指定MXNet使用国内站点下载书中的数据和模型(国外用户无须此操作)。

    set MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn/ jupyter notebook
    

    Linux/macOS用户

    第一步是根据操作系统下载Miniconda,它是一个sh文件。打开Terminal应用进入命令行来执行这个sh文件,例如:

    # 以Miniconda官方网站上的安装文件名为准
    sh Miniconda3-latest-Linux-x86_64.sh
    

    安装时会显示使用条款,按“↓”继续阅读,按“Q”退出阅读。之后需要回答下面几个问题(如当conda版本为4.6.14时):

    Do you accept the license terms? [yes|no]
    [no] >>> yes
    Do you wish the installer to initialize Miniconda3
    by running conda init? [yes|no]
    [no] >>> yes
    

    安装完成后,需要让conda生效。Linux用户需要运行一次source ~/.bashrc或重启命令行应用;macOS用户需要运行一次source ~/.bash_profile或重启命令行应用。

    第二步是下载包含本书全部代码的压缩包,解压后进入文件夹。运行以下命令。Linux用户如未安装unzip,可运行命令sudo apt install unzip安装。

    mkdir d2l-zh && cd d2l-zh
    curl https://zh.d2l.ai/d2l-zh-1.0.zip -o d2l-zh.zip
    unzip d2l-zh.zip && rm d2l-zh.zip
    

    第三步至第五步可参考前面Windows下的安装步骤。若conda版本低于4.4,其中第四步需将命令替换为source activate gluon,并使用命令source deactivate退出虚拟环境。

    更新代码和运行环境

    为了适应深度学习和MXNet的快速发展,本书的开源内容将定期发布新版本。我们推荐大家定期更新本书的开源内容(如代码)和相应的运行环境(如新版MXNet)。以下是更新的具体步骤。

    第一步是重新下载最新的包含本书全部代码的压缩包。下载地址为 https://zh.d2l.ai/d2l-zh.zip 。解压后进入文件夹“d2l-zh”。

    第二步是使用下面的命令更新运行环境:

    conda env update -f environment.yml
    

    之后的激活环境和运行Jupyter步骤跟本节前面介绍的一致。

    使用GPU版的MXNet

    通过前面介绍的方式安装的MXNet只支持CPU计算。本书中部分章节需要或推荐使用GPU来运行。如果你的计算机上有NVIDIA显卡并安装了CUDA,建议使用GPU版的MXNet。

    第一步是卸载CPU版本MXNet。如果没有安装虚拟环境,可以跳过此步。如果已安装虚拟环境,需要先激活该环境,再卸载CPU版本的MXNet。

    pip uninstall mxnet
    

    然后退出虚拟环境。

    第二步是更新依赖为GPU版本的MXNet。使用文本编辑器打开本书的代码所在根目录下的文件environment.yml,将里面的字符串“mxnet”替换成对应的GPU版本。例如,如果计算机上装的是8.0版本的CUDA,将该文件中的字符串“mxnet”改为“mxnet-cu80”。如果计算机上安装了其他版本的CUDA(如7.5、9.0、9.2等),对该文件中的字符串“mxnet”做类似修改(如改为“mxnet-cu75”“mxnet-cu90”“mxnet-cu92”等)。保存文件后退出。

    第三步是更新虚拟环境,执行命令

    conda env update -f environment.yml
    

    之后,我们只需要再激活安装环境就可以使用GPU版的MXNet运行本书中的代码了。需要提醒的是,如果之后下载了新代码,那么还需要重复这3步操作以使用GPU版的MXNet。

    小结

    • 为了能够动手学深度学习,需要获取本书的代码并安装运行环境。
    • 建议大家定期更新代码和运行环境。

    练习

    • 获取本书的代码并安装运行环境。如果你在安装时遇到任何问题,请扫一扫本节末尾的二维码。在讨论区,你可以查阅疑难问题汇总或者提问。

    扫码直达讨论区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CaAJ1rmn-1582722198699)(…/img/qr_install.svg)]

    展开全文
  • 学习深度学习时候,很多人参考的是李沐动手学深度学习Pytorch版本(附上官方地址:https://tangshusen.me/Dive-into-DL-PyTorch/#/)。 在学习3.5.1节 “获取数据集” 时,会遇到d2lzh_pytorch包缺少的问题,经过...
  • 神经网络学习小记录48——windows下的torch=1.2.0环境配置_Bubbliiiing的学习小课堂-CSDN博客_神经网络学习小记录神经网络学习小记录48——windows下的torch=1.2.0环境配置学习前言环境内容Anaconda安装下载Cudnn和...

    本地安装d2l

     由于之前试了很多次d2l课本的安装方法失败了,这里提供一种我可以成功安装d2l包的方法。

    pytorch安装

    首先安装cuda、cudnn、pytroch(gpu版本)。可以参考这篇文章。

    神经网络学习小记录48——windows下的torch=1.2.0环境配置_Bubbliiiing的学习小课堂-CSDN博客_神经网络学习小记录神经网络学习小记录48——windows下的torch=1.2.0环境配置学习前言环境内容Anaconda安装下载Cudnn和CUDA配置torch环境安装VSCODE学习前言好多人问环境怎么配置,还是出个教程吧。环境内容torch:1.2.0torchvision:0.4.0Anaconda安装最新版本的Anaconda没有VSCODE,如果大家为了安装VSCODE方便可以直接安装旧版的Anaconda,百度网盘连接如下。也可以装新版然后分开装VSCODE。链接: https://panhttps://blog.csdn.net/weixin_44791964/article/details/106037141?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163178646416780269847175%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163178646416780269847175&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-106037141.pc_v2_rank_blog_default&utm_term=windows&spm=1018.2226.3001.4450

    d2l安装 

     现在pytorch应该都配置完成了。接下来将下面这个github链接的东西下载下来。GitHub - d2l-ai/d2l-zh: 《动手学深度学习》:面向中文读者、能运行、可讨论。中英文版被全球200所大学采用教学。 《动手学深度学习》:面向中文读者、能运行、可讨论。中英文版被全球200所大学采用教学。. Contribute to d2l-ai/d2l-zh development by creating an account on GitHub.https://github.com/d2l-ai/d2l-zh

    随后解压下载好的压缩包, 打开这个,使用cd命令到你解压好的文件目录下面。并执行

    python setup.py install

     也可以先安装好需要的包

     使用如下命令

    pip install jupyter -i https://pypi.doubanio.com/simple/

    pip install numpy -i https://pypi.doubanio.com/simple/
    pip install matplotlib -i https://pypi.doubanio.com/simple/
    pip install requests -i https://pypi.doubanio.com/simple/
    pip install pandas -i https://pypi.doubanio.com/simple/

    执行完毕即可再运行

    python setup.py install

    这样就完成了d2l的安装。

    直接在colab上运行 

    课本链接《动手学深度学习》 — 动手学深度学习 2.0.0-alpha2 documentationhttps://zh-v2.d2l.ai/index.html

    随便打开一章,找到代码, 选择pytorch代码,

    再到页面的最上方找到colab链接

     点击即可进入相应代码的colab。

    注:谷歌邮箱建议直接用手机的QQ邮箱APP注册。如何科学上网就不用多说了。

    展开全文
  • 在欠拟合和过拟合一节中,原封不动把代码搬过来,却报错了 import math import numpy as np import torch from torch import nn from d2l import torch as d2l max_degree = 20 n_train, n_test = 100, 100 ...

    在欠拟合和过拟合一节中,原封不动把代码搬过来,却报错了

    import math
    import numpy as np
    import torch
    from torch import nn
    from d2l import torch as d2l
    
    max_degree = 20
    n_train, n_test = 100, 100
    true_w = np.zeros(max_degree)
    true_w[0:4] = np.array([5, 1.2, -3.4, 5.6])
    
    features = np.random.normal(size=(n_train + n_test, 1))
    np.random.shuffle(features)
    poly_features = np.power(features, np.arange(max_degree).reshape(1, -1))
    for i in range(max_degree):
        poly_features[:, i] /= math.gamma(i + 1)
    labels = np.dot(poly_features, true_w)
    labels += np.random.normal(scale=0.1, size=labels.shape)
    
    
    def evaluate_loss(net, data_iter, loss):
        """评估给定数据集上模型的损失。"""
        metric = d2l.Accumulator(2)
        for X, y in data_iter:
            out = net(X)
            y = y.reshape(out.shape)
            l = loss(out, y)
            metric.add(l.sum(), l.numel())
        return metric[0] / metric[1]
    
    
    def train(train_features, test_features, train_labels, test_labels,
              num_epochs=400):
        loss = nn.MSELoss()
        input_shape = train_features.shape[-1]
        net = nn.Sequential(nn.Linear(input_shape, 1, bias=False))
        batch_size = min(10, train_labels.shape[0])
        train_iter = d2l.load_array((train_features, train_labels.reshape(-1, 1)),
                                    batch_size)
        test_iter = d2l.load_array((test_features, test_labels.reshape(-1, 1)),
                                   batch_size, is_train=False)
        trainer = torch.optim.SGD(net.parameters(), lr=0.01)
        animator = d2l.Animator(xlabel='epoch', ylabel='loss', yscale='log',
                                xlim=[1, num_epochs], ylim=[1e-3, 1e2],
                                legend=['train', 'test'])
        for epoch in range(num_epochs):
            d2l.train_epoch_ch3(net, train_iter, loss, trainer)
            if epoch == 0 or (epoch + 1) % 20 == 0:
                animator.add(epoch + 1, (evaluate_loss(
                    net, train_iter, loss), evaluate_loss(net, test_iter, loss)))
        print('weight:', net[0].weight.data.numpy())
    
    
    train(poly_features[:n_train, :4], poly_features[n_train:, :4],
          labels[:n_train], labels[n_train:])
    
    

    报错如下:

    Traceback (most recent call last):
      File "D:/pycharm_workspace/other_learn/main.py", line 55, in <module>
        labels[:n_train], labels[n_train:])
      File "D:/pycharm_workspace/other_learn/main.py", line 39, in train
        batch_size)
      File "D:\Anaconda3\lib\site-packages\d2l\torch.py", line 160, in load_array
        dataset = data.TensorDataset(*data_arrays)
      File "D:\Anaconda3\lib\site-packages\torch\utils\data\dataset.py", line 158, in __init__
        assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors)
      File "D:\Anaconda3\lib\site-packages\torch\utils\data\dataset.py", line 158, in <genexpr>
        assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors)
    TypeError: 'int' object is not callable
    

    我哪里变量和函数重名了??求解,重酬!

    展开全文
  • x) y #通过调用反向梯度函数计算y关于x每个分量的梯度 y.backward() x.grad #验证 x.grad==4*x #计算x的另一个函数 x.grad.zero_() #梯度清零 y=x.sum() y.backward() x.grad #深度学习中 我们的目的并不是计算微分...

    import torch
    #假设对y=2XΤX(转置) 关于列向量x求导
    x=torch.arange(4.0) 
    #在计算之前 需要一个地方存储梯度
    x.requires_grad_(True)  #等价于 x=torch.arange(4.0,requires_grad=True)
    x.grad

    #计算y
    y=2*torch.dot(x,x)
    y

    #通过调用反向梯度函数计算y关于x每个分量的梯度
    y.backward()
    x.grad

     #验证
    x.grad==4*x

    #计算x的另一个函数
    x.grad.zero_()   #梯度清零
    y=x.sum()
    y.backward()
    x.grad 

    #深度学习中 我们的目的并不是计算微分矩阵 而是批量中每个样本单独计算偏导之和
    #大部分是对标量求导
    x.grad.zero_()
    y=x*x
    #等价于y.backward(torch.ones(len(x)))
    y.sum().backward()
    x.grad

    #将某些计算移动到计算图之外
    x.grad.zero_()
    y=x*x
    u=y.detach() #u:把y当作常数
    z=u*x

    z.sum().backward()
    x.grad==u

     

    #当使用复杂的Python计算控制流 仍然可以求导
    def f(a):
        b=a*2
        while b.norm()<1000:
            b = b*2
        if b.sum()>0:
            c = b
        else:
            c = 100*b
        return c

    a = torch.randn(size=(),requires_grad=True)
    d = f(a)
    d.backward()

    a.grad==d/a

     

     

    展开全文
  • 深度学习资料,能快速提升自己在这方面的能力
  • 点击上方“AI遇见机器学习”,选择“星标”公众号重磅干货,第一时间送达强烈推荐李沐等人的《动手学深度学习》最新版!完整中文版 PDF 终于在 5月 8 日更新可下载:PDF资源获取附...
  • 第一步 安装python 网上有很多教程,随便一个都能用 第二步 安装anaconda 下载anaconda的安装包,直接安装即可 第三步 conda下的环境配置 打开Anaconda Powershell Prompt 创建一个新的环境ML并激活 ...
  • 1.书籍及讲课视频 书籍:http://zh.gluon.ai/ 视频:https://courses.d2l.ai/zh-v2/ 视频的课程安排中,这四部分分别代表书上对应的内容、PPT、对应代码、视频链接 2.更新中
  • 动手学深度学习》学习网址: 《动手学》:过拟合、欠拟合及其解决方案 1. 关于验证数据集的描述错误的是: 答案:测试数据集可以用来调整模型参数。 解析:测试数据集不可以用来调整模型参数,如果使用测试数据集...
  • 李沐老师的《动手学深度学习》是一本入门深度学习的优秀教材,也是各大在线书店的计算机类畅销书。 作为MXNet的作者之一,李沐老师的教材自然也是使用MXNet框架写成的。但是很多入坑机器学习的萌新们使用的却是...
  • 1 为什么推荐李沐动手学深度学习)呢? 如果你刚入门,时间也宽裕,不妨系统的学习下一些基本概念,如果你学习了一些内容但是没有构建起完整的知识架构也可以学习。 我想原因大概有几点 全书开源,可以方便下载...
  • 今天小编就来安利一本中文资料——中文版本的《动手学深度学习》。 内容简介  本书向希望了解深度学习,特别是对实际使用深度学习感兴趣的学习者。本书并不要求你有任何深度学习或者机器学习的背景知识,我们将...
  • 李沐、Aston Zhang 等人合力打造的《动手学深度学习》正式上线,免费供大家阅读。这是一本面向中文读者的能运行、可讨论的深度学习教科书 李沐的这本《动手学深度学习》也是使用 MXNet 框架写成的。但是很多...
  • 点上方计算机视觉联盟获取更多干货仅作学术分享,不代表本公众号立场,侵权联系删除转载于:机器学习初学者,吴镇宇博士AI博士笔记系列推荐周志华《机器学习》手推笔记正式开源!可打印版本附pdf下...
  • github上一个[项目](https://github.com/ShusenTang/Dive-into-DL-PyTorch)将《动手学深度学习》从mxnet改为了pytorch实现。感谢大佬们的工作。   特别说明该电子版网页是通过docsify部署生成的,详细了解...
  • 李沐动手学深度学习-CH04 数据操作的实现 这边的内容感觉不太需要记录,所以就没有写了,忘记了就查找一下嘛。只是简单记录 值得注意的是如果向量形状不一样,他会有一个广播机制,当然这个广播机制的使用也是有一定...
  • 下载d2lzh_pytorch 直接百度云: ...提取码:hwn4 将文件夹 d2lzh_pytorch 【记住这个是 小写 L 不是 数字 1 】 放到anaconda 你自己创建的环境下: C:\ProgramData\Anaconda3\envs\pytorchzc\Lib\site-packages ...
  • import os os.makedirs(os.path.join('.','data'),exist_ok=True) data_file=os.path.join('.','data','house_tiny.csv') with open(data_file,'w') as f: f.write('NumRooms,Alley,Price\n') #列名 ...
  • 转自 | AI科技评论据亚马逊首席科学家李沐在知乎发布的最新消息,《动手学深度学习》中文第二版预览版已经发布,该版本相对于第一版有多项更新。与第一版有所不同,该版本的代码部分包含MXNet...
  • #!pip install matplotlib #!...l.mean()):f}') #比较真实参数和通过训练到的参数来评估训练的成功程度 print(f'w的估计误差:{true_w-w.reshape(true_w.shape)}') print(f'b的估计误差:{true_b-b}')
  • 【课程笔记】动手学深度学习(李沐)

    千次阅读 2018-03-02 17:55:24
    1)我自己使用windows+docker方式进行学习,其中需要使用打开 http://192.168.99.104:8888 ,而不是原文中的 http://localhost:8888 (安装过程参考http://blog.csdn.net/tina_ttl/article/details/51372604) 2)...
  • 向AI转型的程序员都关注了这个号????????????人工智能大数据与深度学习 公众号:datayx由 MXNet 创始人李沐大神、Aston Zhang 等人所著的交互式书籍《动手学...
  • 矩阵计算中最重要的就是矩阵的导数计算,这对于深度学习或者机器学习的训练与优化都是非常重要的依据 如果dy/dx,如果y是一个标量,而x是一个向量,那么就需要使用y的这个表达式,对x1,x2全部求一次导,然后变成一个...
  • 强烈推荐李沐等人开源的《动手学深度学习》最新版!完整中文版 PDF 终于更新 可下载: 资料领取: 扫描下方二维码,关注【大超杂谈】并在公众号后台回复:LM,即可获取电子版 内容简介 此书的结构: 以下是主要...
  • 在运行书籍代码、更新深度学习框架或 d2l 软件包之前,请始终执行 conda activate d2l 以激活运行时环境。要退出环境,请运行 conda deactivate。 查看本地的 env % conda info --envs # conda environments: # base...
  • 这次汇报,是关于学习李沐博士的动手学深度学习的总结,需要用到Linux非图形界面的系统。之前我用的是Ubuntu的图形界面系统,所以缺少纯命令行Linux系统的使用熟练度,正好借此机会实践。云端服务器我基本都用过,...
  • 对于矩阵的求导可以使用函数自动实现,但是还是需要学习一下具体的过程。链式法则等导数计算方法,截图主要用于帮助理解反向传递 正向和反向的计算方法相比,在时间复杂度上两者并没有太大的查遍,但是内存复杂度...
  • 这一节课从数学上面讲一下线性代数,包括向量加减乘,模长点乘正交等内容,都学习过所以就不写了。 A.T # 表示A矩阵的转置 torch.arange(24),reshape(2,3,4) # 首先是第三维的层数,然后行数,最后是列数 B = A....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,729
精华内容 691
关键字:

李沐动手学深度学习