Task1-Task2
动手学深度学习Task1-Task2
- Task1-Task2
- Task1 环境配置
- 我在学习环境配置中出现的问题与解决方法
- 环境配置的过程
- Task2
- 数据操作
- 数据预处理
- 线代
- 矩阵计算
- 自动求导
@pytorch深度学习预备知识
Task1-Task2
大家好!这是我在CSDN上的,**[第一篇]**文章,很激动,很高兴,因为深度学习我是第一次上手学习实操,CSDN这种写文章的方式也是我第一次上手学习实践。毫无疑问,CSDN将是我学习深度学习的过程中的一位重要伙伴,因为我要将每次刚刚学习过的知识在这里梳理一遍:不仅仅是机械式的记录,是复习,是将输入到脑海中的信息的再整理。
Task1 环境配置
我在学习环境配置中出现的问题与解决方法
环境配置其实算是课程里第一个要动手实操的地方,尽管老师讲得很好(非常的细节,发音非常清晰),这依旧不妨碍问题制造机——我,在听课的过程中生产问题:
- 时间紧张,看不上直播,打卡更紧张,往往听课的时候已经大半夜了,整个人迷迷瞪瞪,然后就会导致第二个问题↓;
- 又瞌睡,又在计算机方面的基础知识薄弱,很多代码看不懂,跟着做都做乱了,输出结果和老师不!一!样!(崩溃ing),出不来还继续尝试,渴望用同一个错误的句子得到一个可以正确的奇迹。
遇到问题怎么办?先拿出手机拍(开)个抖(玩)音(笑):
- 时间是海绵,挤一挤总是有的。
- 来瓶可乐清醒一下(不适合喝可乐的除外)。
- 书读百遍其义自见。既然出错了,一定是有原因的,倒回去找你需要的那个part,反复看,反复试。
- 如果第三步依旧有问题你不如听老师的话:打开百度搜一搜。
- 实在用代码行下载不下来的话就去网页下载吧,以后再解决这个问题。
环境配置的过程
因为我这边台式机里是Windows,所以我这边主要学习的是骆秀韬老师讲解的部分。
- 下载安装miniconda
找到Miniconda的下载地址,并且选择Miniconda3 Winidows 64 bit进行下载
或者搜索清华大学tuna镜像站下载(搜索conda→点击问号→下拉找到miniconda下载的地方→找到带有latest的最新数据进行下载)
安装的时候只有clear cache需要注意勾选一下,其他无脑确认就okk。 - 更换镜像源
这一部分应该也没有什么问题,照做即可。PyPI找列表里名为Pypi-packages的选项,复制→粘贴到anaconda powershell prompt里就ok。 - 安装Git
Git这个是纯纯的无脑安装,一路确定下去,肥肠的方便。
老师教了如何用git下载github里的资源,我成功了一个,另一个不知道为何一直失败,暂时先直接点击下载了。 - 课程环境搭建
直接上命令行:
conda create -n d2l python=3.9
然后:输入y→输入conda activate d2l,进入d2l环境~~
tips
①输入conda deactivate回到basic环境,注意,这条命令行没有"d2l"了!我一开始因为困顿卡了在这里卡了两次退不出来)
②删除环境用:conda remove -n d2l – all (然后输入y)
- Pip安装
如下,让可爱的老师出个镜。直接装所有库就ok!
Task1到此结束(撒花✿✿ヽ(°▽°)ノ✿)
Task2
数学一直都不好,但是我有一颗上进的❤(o(╥﹏╥)o)。
这一份task一共包括5个小节:数据操作、数据预处理、线代、矩阵计算、自动求导。
数据操作
深夜来到了我们的B站大学进行数据操作学习。
这一节有一个非常基础与重要的tip:N维数组是机器学习与神经网络的主要数据结构。
这里老师先对以下三个方面进行了简单讲解:
- 0d(标量)、1d(特征向量)、2d(特征矩阵)、3d、4d、5d;
- 创建数组:需求:形状+元素数据类型+元素的值;
- 访问元素:单个/一行/一列/子区域元素的访问。
在jupyter中进行实操中,对以下部分进行了学习(代码已列好,可以进行修改,ctrl+enter执行,空格下一页):
import the PyTorch library
import torchtensor(A tensor represents a (possibly multi-dimensional) array of numerical values)
x = torch.arange(12, dtype=torch.float32)
xaccess a tensor’s shape
x.shapeaccess a tensor’s numel
x.numel()Change the shape of a tensor without altering its size or values
X = x.reshape(3, 4)
Xconstruct a tensor with all elements set to zero or one
torch.zeros((2, 3, 4))
torch.ones((2, 3, 4))Sample each element randomly (and independently)
torch.randn(3, 4)Supplying the exact values for each element
torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])Add, subtract, multiply, divide, and power
x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** yconcatenate multiple tensors together
X = torch.arange(12, dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
torch.cat((X, Y), dim=0), torch.cat((X, Y), dim=1)Construct a binary tensor via logical statements
X == YSumming all the elements in the tensor
X.sum()Perform elementwise binary operations by invoking the broadcasting mechanism
a = torch.arange(3).reshape((3, 1))
b = torch.arange(2).reshape((1, 2))
a, b
a+b
(这里其实我想问问所以广播机制存在的理由是什么)[-1] selects the last row and [1:3] selects the second and third rows
X[-1], X[1:3]write elements of a matrix by specifying indices
X[1, 2] = 17
XTo assign multiple elements the same value
X[:2, :] = 12
XRunning operations can cause new memory to be allocated to host results
before = id(Y)
Y = Y + X
id(Y) == beforePerforming in-place operations
Z = torch.zeros_like(Y)
print(‘id(Z):’, id(Z))
Z[:] = X + Y
print(‘id(Z):’, id(Z))Converting to a NumPy tensor (ndarray)
A = X.numpy()
B = torch.from_numpy(A)
type(A), type(B)Convert a size-1 tensor to a Python scalar
a = torch.tensor([3.5])
a, a.item(), float(a), int(a)
数据预处理
- 创建数据集,并存储在CSV文件中
(老师和)代码如下:
- 从创建的csv文件中加载原始数据集(如果没有pandas要先下载pandas~)
import pandas as pd
data = pd.read_csv(data_file)
print(data) - 处理丢失的数据,方法有2种:插值 or删除
Replace the NaN entries with the mean value of the corresponding column:
inputs = inputs.fillna(inputs.mean())
print(inputs)
For categorical input fields, we can treat NaN as a category:
inputs, targets = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)
All the entries in inputs and targets are numerical, we can load them into a tensor
import torch
X, y = torch.tensor(inputs.values), torch.tensor(targets.values)
X, y
线代
学习路线图:线性代数
Task1-Task2相关推荐
- python queue 多进程_python中的Queue与多进程(multiprocessing)
最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程 一.先说说Queue(队列对象) Queue是python中的标准库,可以 ...
- springMvc+mybatis+spring 整合 包涵整合activiti 基于maven
2019独角兽企业重金招聘Python工程师标准>>> 最近自己独立弄一个activiti项目,写一下整合过程: 环境:jdk1.7 tomcat7.0 maven3.5 ecli ...
- NLP这两年:15个预训练模型对比分析与剖析
作者 | JayLou 来源 | 知乎 前言 在之前写过的<NLP的游戏规则从此改写?从word2vec, ELMo到BERT>一文中,介绍了从word2vec到ELMo再到BERT的发展 ...
- Spring Boot 中使用@Async实现异步调用,加速任务执行!
欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...
- ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
前言 事情不太多时,会时不时去看项目中同事写的代码可以作个参考或者学习,个人觉得只有这样才能走的更远,抱着一副老子天下第一的态度最终只能是井底之蛙.前两篇写到关于断点传续的文章,还有一篇还未写出,后续 ...
- 后BERT时代:15个预训练模型对比分析与关键点探索(附链接)
来源:知乎 作者:JayLou 本文约7800字,建议阅读10分钟. 本文对ELMo以来的15个代表性的预训练语言模型进行了多维度的对比和分析. 前言 在之前写过的<NLP的游戏规则从此改写?从 ...
- Callable、Future和FutureTask
2019独角兽企业重金招聘Python工程师标准>>> 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一个缺陷就是:在执行完任 ...
- Concurrency 学习 (Mac iphone)
Concurrency是ios4.0和macosx10.6引入的一个新的东西 根据我的学习和了解Concurrency就是为了更好的使用多核CPU,在单核下使用thread就可以, 但是在多核下使用t ...
- 多线程编程学习笔记——async和await(三)
接上文 多线程编程学习笔记--async和await(一) 接上文 多线程编程学习笔记--async和await(二) 五. 处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...
- java中setid(),Java Process.setId方法代碼示例
本文整理匯總了Java中org.activiti.bpmn.model.Process.setId方法的典型用法代碼示例.如果您正苦於以下問題:Java Process.setId方法的具體用法?Ja ...
最新文章
- 计算机的五大主要应用领域是电大,电大计算机应用基础考答案
- leetcode前缀树java_LeetCode 实现 Trie (前缀树)
- 一秒搭建gitbook
- (转)看盘ABC:看盘七大指标
- 搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)
- 认知觉醒是成长的首因,送3本硬核认知提升书
- 总结30个CSS3选择器(转载)
- Java 读取 INI 配置文件的方法
- 敏感词过滤算法DFA
- 我的新书《Android App开发从入门到精通》终于出版啦
- 联想小新Pad救砖(9008刷机)
- C#汉字转拼音(支持多音字)
- 鸿蒙818工艺,荣耀智慧屏系列发布:鸿鹄818芯片+首款鸿鹄系统产品,未来家庭中心已来,3799元起售...
- 激光投影仪和大屏液晶电视有哪些优缺点?二者应该怎么选?
- outlook邮箱撤回邮件
- flutter 修改iOS app图标 名称
- 根据硬件ID查看摄像头型号方案,可查任何一款摄像头芯片来源
- win7降低屏幕亮度_Win7电脑屏幕亮度怎么调?Win7调节屏幕亮度的步骤
- 计算机视觉论文-2021-06-24
- IDEA官方有中文版啦