pytorch数据的基本操作
基础使用
引入torch
1 | import torch |
表示一个数值组成的数组
1 | x=torch.arange(12) |
通过shape属性来访问x的形状和元素总数
1 | #x的形状 |
要改变一个张量的形状而不改变元素的数量和元素值,我们可以调用reshape函数 传入行 列 比如讲x改为3行4列
1 | x.reshape(3,4) |
使用全0、全1、其他常量或者从特定分布中随机采样的数字
1 | #使用全0创建 2个 3 行4列 的数组 其实是三维 |
通过提供包含数值的python列表(或嵌套列表) 来为所需张量中的每个元素赋予确定值
1 | torch.tensor([[[1,2,3],[7,8,9]]]) |
常见的标准算术运算符 + - / /* // 都被升级为按元素运算
1 | x=torch.tensor([1,2,3]) |
可以把多个向量连接起来
1 | #生成12个 格式为torch.float32 的数组 重新变为3行4列 |
通过逻辑运算符构建二元张量
1 | x==y |
即使形状不同,我们仍然可以通过调用广播机制 来执行元素操作
1 | a=torch.arange(3).reshape((3,1)) |
访问元素
1 | #取出x的最后一个元素 和x的第二 三个元素 |
运行一些操作可能会导致新结果分配内存
1 | #取出y的id |
numpy与torch互相转换
1 | A=x.numpy() |
将大小为1的张量转换为标量
1 | a=torch.tensor([1]) |
数据预处理
创建一个人工数据集,并存储在csv文件中
1 | import os |
利用pandas从创建的csv文件中加载原始的数据集
1 | import pandas as pd |
为了处理缺失的数据,典型的方法包括插值和删除进行处理
1 | inputs,outputs=data.iloc[:,0:2],data.iloc[:,2] |
对于inputs中的类别值或离散值,我们将NAN视为一个类别
1 | #通过pandas 加类别,参数dummy_na 表示NAN是不是一个类别 |
现在inputs outputs中所有的条目都是数值,把他们转换成张量¶
1 | x,y=torch.tensor(inputs.values),torch.tensor(outputs.values) |
作者声明
1 | 如有问题,欢迎指正! |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jhj-coding!
评论