赞
踩
N维数组是机器学习和神经网络的主要数据结构
概念-》(1)::表示有三个参数,前两个是左闭右开的区间,第三个是步长,默认为1
(2)张量是表示成一个 数值组成的数组,这个数组可能有多个维度
(3)我们可以通过张量的shape属性来访问张量的形状和张量中元素的总数,张量求和可以用sum(),如果要指定维度求和,可以 sum(axis=?)来表示,
例如三维张量(2,3,4)sum(axis=0)就表示矩阵相加,sum(axis=1)就表示行相加,sum(axis=2)就表示列相加,维度也会消失,但如果在sum中增加参数(keepdims=True)维度就可以不消失但会变为1,
A.mean()求均值,
torch.mv(A,x)表示矩阵和向量的乘积,
torch.mm(A,B)表示矩阵和矩阵的乘积,
torch.norm(x)向量的模(这里放矩阵也可以,同理)
torch.abs(x).sum()向量元素绝对值的和
(4)要改变一个张量的形状而不改变元素数量和元素值,我们可以调用reshape函数
(5)使用全0、全1、其他常量或者从特定分布中随机采样的数字用zeros(),ones()
(6)通过提供包含数值的Python列表(或嵌套列表)来为所需张量中的每个元素赋予确定值
(7).shape()中的参数,表示每一层中括号中有几个元素,括号层数有3层,第一个轴只有1个元素,第二个轴有3个元素,第三个轴有4个元素,这就是xx.shape1,3,4的来源(或者这样理解,一个三维张量,有一个二维矩阵,每一个二维矩阵有三个向量,每一个向量有4个标量)
(8)我们可以把多个张量链接在一起,dim的值表示在哪个中括号合并,dim=0就表示增加最外层中括号的元素个数,dim=1就表示增加次外层中括号的元素个数。以此类推
(9)通过逻辑运算符构建二元张量
(10)对张量中的所有元素求和会产生一个只有一个元素的张量
(11)即使形状不同,我们仍然可以通过调用广播机制来执行按元素操作,都是往比自己高维度来复制。
(12)运行一些操作可能会导致为新结果分配内存
(13)转换为Numpy张量
(1)创建一个人工数据集,并存储在csv(逗号分隔值)文件
(2)从创建的csv文件中加载原始数据集
(3)为了处理缺失的数据,典型的方法包括插值和删除,这里,我们将考虑插值
pd.get_dummies() 函数是 pandas 提供的一种数据转换方式,用于将分类变量(categorical variable)转换为数值型变量(numerical variable),从而方便机器学习算法的处理。
在给定的代码中,inputs 是一个包含两个特征的 pandas DataFrame,其中的 “NumRooms” 特征是数值型变量,而 “Alley” 特征是分类变量,包含两个取值 “Pave” 和 “NA”。为了方便机器学习算法的处理,我们可以使用 pd.get_dummies() 函数将 “Alley” 特征转换为两个数值型变量 “Alley_Pave” 和 “Alley_NA”,其中 “Alley_Pave” 和 “Alley_NA” 的取值分别为 0 和 1,表示原始数据中的 “Alley” 特征是否等于 “Pave” 或 “NA”。
在代码中,pd.get_dummies(inputs, dummy_na=True) 的参数 dummy_na=True 表示将 “Alley” 特征中的缺失值(“NA”)也视为一种取值,并将其转换为一个新的数值型变量 “Alley_nan”,取值为 0 或 1,表示原始数据中的 “Alley” 特征是否缺失。
(4)现在inputs和output中的所有条目都是数值类型,它们可以转换为张量格式
import torch import os import pandas as pd 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") f.write("NA,Pave,127500\n") f.write("2,NA,106000\n") f.write("4,NA,178100\n") f.write("NA,NA,140000\n") data=pd.read_csv(data_file) print(data) inputs,outputs=data.iloc[:,0:2],data.iloc[:,2] inputs=inputs.fillna(inputs.mean(numeric_only=True)) print(inputs) inputs=pd.get_dummies(inputs,dummy_na=True,dtype=int) print(inputs) x,y=torch.tensor(inputs.values),torch.tensor(outputs.values) print(x) print(y)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。