【Datawhale动手学深度学习笔记】预备知识

栏目:汽车资讯  时间:2023-08-11
手机版

  Anaconda官网:https://www.anaconda.com/products/distribution

  跟着屏幕提示输入需要信息即可,安装完成后重新加载一下环境变量

  内容如下:

  安装torch

  安装d2l包

  注:如果没有git工具安装命令如下

  个人比较喜欢使用juypter lab进行时间,如果喜欢使用notebook的话可以不执行这一步

  安装

  设置密码

  至此环境准备工作全部完成

  我们可以使用 arange 创建一个行向量 x。这个行向量包含以0开始的前12个整数,它们默认创建为整数。也可指定创建类型为浮点数。张量中的每个值都称为张量的 元素(element)。例如,张量 x 中有 12 个元素。除非额外指定,新的张量将存储在内存中,并采用基于CPU的计算。

  在上面的部分中,我们看到了如何在相同形状的两个张量上执行按元素操作。 在某些情况下,即使形状不同,我们仍然可以通过调用 广播机制(broadcasting mechanism)来执行按元素操作。 这种机制的工作方式如下:

  通过适当复制元素来扩展一个或两个数组,以便在转换之后,两个张量具有相同的形状;对生成的数组执行按元素操作。 运行一些操作可能会导致为新结果分配内存。 例如,如果我们用Y = X + Y,我们将取消引用Y指向的张量,而是指向新分配的内存处的张量。

  在下面的例子中,我们用Python的id()函数演示了这一点, 它给我们提供了内存中引用对象的确切地址。 运行Y = Y + X后,我们会发现id(Y)指向另一个位置。 这是因为Python首先计算Y + X,为结果分配新的内存,然后使Y指向内存中的这个新位置。

  运行结果:

  这可能是不可取的,原因有两个:

  首先,我们不想总是不必要地分配内存。在机器学习中,我们可能有数百兆的参数,并且在一秒内多次更新所有参数。通常情况下,我们希望原地执行这些更新;如果我们不原地更新,其他引用仍然会指向旧的内存位置,这样我们的某些代码可能会无意中引用旧的参数。 如果在后续计算中没有重复使用X, 我们也可以使用X[:] = X + Y或X += Y来减少操作的内存开销。

  运行结果:

  注:如果没有安装pandas,只需取消对以下行的注释来安装pandas

  运行结果:

  计算结果:

  计算结果:

上一篇:祖孙三代娶同一个妻子,本以为只是故事,没想到居然是真实存在的
下一篇:看到景甜的这3张照片,我想对张继科说,真是犯罪啊!