李沐-《动手学深度学习》资料

目录

一.书籍及讲课视频

二.笔记(按书的章节划分)-----更新中

1. 前言

1.1 安装

1.2 符号

2.预备知识

2.1 数据操作---广播机制

2.2数据预处理--课后习题

     2.2.1分段代码及运行结果

     2.2.2 整体代码


一.书籍及讲课视频

书籍:http://zh.gluon.ai/

视频:https://courses.d2l.ai/zh-v2/

视频的课程安排中,这四部分分别代表书上对应的内容、PPT、对应代码、视频链接

二.笔记(按书的章节划分,每一章内容包括我认为的重难点、易错点以及课后题)-----更新中

1. 前言

1.1 安装

直接用colab执行

1.2 符号

标量,向量,张量比较

标量:0维数组,只有大小没有方向,scalar

向量:1维数组,有大小也有方向,vector

矩阵:2维数组

张量:n维数组(应该是n>=1),表示由一个数值组成的数组,这个数组可能有多个维度可以用坐标系表示,tensor

2.预备知识

2.1 数据操作---广播机制

在大多数情况下,我们将沿着数组中长度为1的轴进行广播

如果两个张量形状不同,先复制为相同形状再逐元素相加,如:

李沐-《动手学深度学习》资料_第1张图片

a为3行一列,b为1行2列,相加时,由于形状不同,先将a改为3行2列,将b改为3行2列,再相加

2.2数据预处理--课后习题

练习题目

创建包含更多行和列的原始数据集。

  1. 删除缺失值最多的列。
  2. 将预处理后的数据集转换为张量格式。

2.2.1分段代码及运行结果

李沐-《动手学深度学习》资料_第2张图片

李沐-《动手学深度学习》资料_第3张图片

李沐-《动手学深度学习》资料_第4张图片李沐-《动手学深度学习》资料_第5张图片

2.2.2 整体代码

import os 
import torch
import pandas as pd 

#创建包含更多行和列的原始数据集
os.makedirs(os.path.join('..', 'data'),exist_ok=True)
data_file = os.path.join('..','data','house_tiny2.csv')
with open(data_file,'w') as f:
  f.write('NumRooms,Alley,Distance,Price\n')
  f.write('1,Pave,10,100\n') 
  f.write('2,NA,30,200\n')
  f.write('5,Pave,NA,400\n')
  f.write('NA,Pave,NA,NA\n')

#显示数据集
data = pd.read_csv(data_file)
data

#第1题:删除缺失值最多的列
#写了半天总是出错,参考https://blog.csdn.net/qq_42890800/article/details/115287227?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162496482816780265412479%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162496482816780265412479&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-115287227.first_rank_v2_pc_rank_v29&utm_term=%E5%8A%A8%E6%89%8B%E5%AD%A6%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E8%AF%BE%E5%90%8E%E9%A2%98&spm=1018.2226.3001.4187
#值为NaN称作缺失值,值不为NaN称作有效值

c_list = data.count() #每列有效值的个数
min_loc,min,i = 0,100,0 #min_loc有效值数量最少的列,min最小的有效值数量,i第几列
for c in c_list: #例如第0列有3个有效值,c为3
  if c < min: #如果c小于最小的有效值数量
    min_loc = i #那么有效值数量最少的列为第i列
    min = c   #最小的有效值数量改为c
  i += 1    #下一列

#获取了有效值数量最少的列的列数,即缺失值最多的列的列数,删除掉它
del data[c_list.index[min_loc]]
data

#第2题:将预处理后的数据集转换为张量格式
#首先把缺失值用均值补上
data = data.fillna(data.mean())
data

#再把NaN改为0/1
data = pd.get_dummies(data, dummy_na=True)
data

#最后转为tensor
data = torch.tensor(data.values)
data

2.3 线性代数

求和时,指定axis=0,是指求和所有行的元素来降维(轴0)= 计算每一列的和 = 输入矩阵沿0轴降维以生成输出向量 = 输入的轴0的维数在输出形状中丢失。例如:

李沐-《动手学深度学习》资料_第6张图片

李沐-《动手学深度学习》资料_第7张图片

你可能感兴趣的:(python,深度学习)