python、pytorch代码笔记
2021/10/19 11:09:48
本文主要是介绍python、pytorch代码笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
文件读写:
①rb – 读取二进制文件,r – 读取文本文件 ②.pkl是python保存文件的一种文件格式,如果直接打开会显示一堆序列化的东西,需要使用r b类型来打开。
③with open(‘data.txt’ + ‘dataset.pkl’, ‘rb’) as f 读取文件
④mat 数据格式是Matlab的数据存储的标准格式
loadmat() 读取.mat文件
eg: import scipy.io as scio
dataFile = ‘E://data.mat’
data = scio.loadmat(dataFile)
print data[‘A’] //找到mat文件中的A矩阵
loadtxt() numpy中的函数 读取数据文件,这里的数据文件要求每一行数据的格式相同 -
pass: 不做任何事情,一般用做占位语句。
-
dtype: 数据类型
-
set() 创建一个无序不重复元素集,可删除重复数据
-
list() 用于将元组转换为列表,将()转为[]
-
shuffle() 将序列的所有元素随机排序 eg:import random random.shuffle(list)
-
dump() 将对象obj保存到文件file中去 eg:import pickle pickle.dump(obj, file) pickle.HIGHEST_PROTOCOL 这是一个整数,表示最高可用的协议版本 eg:pickle.dump(train_set, f, pickle.HIGHEST_PROTOCOL)
-
DataFrame() 数据统计(例如excel) 是一个表格型的数据结构 eg:import pandas as pd pd.DataFrame(list, columns = [‘uid’, ‘iid’, ‘label’])
-
str.format() 格式化字符串 eg:print(‘Train samples: {}, Valid samples: {}’.format(len(train_set), len(valid_set)))
-
sort_values() axis=0/1 行/列,ascending=True/False 升序/降序,by=’’ 按照哪一列或者行排序 eg:train_df = train_df.sort_values(axis = 0, ascending = True, by = ‘uid’)
-
range() 创建一个整数列表 range(start, stop, step) 包含start不包含stop
-
tqdm(iterator) Python进度条 在Python长循环中添加一个进度提示信息 eg:for u in tqdm(range(user_count + 1))
-
toList() 将数组/矩阵转换为列表 eg:hist[‘iid’].tolist()
-
os.path.dirname(path) 去掉文件名,返回目录
-
Dataset 是一个包装类,用来将数据包装为Dataset类
DataLoader 传入Dataset,
pytorch中加载数据的顺序是:
①创建一个dataset对象
②创建一个dataloader对象
③循环dataloader对象,将data,label拿到模型中去训练
dataset 需要自己定义一个class,里面至少包含3个函数:
①__init__:传入数据
②__len__:返回这个数据集一共有多少个item
③__getitem__:返回一条训练数据,并将其转换成tensor
dataloader 参数
dataset:传入的数据
shuffle = True:是否打乱数据
collate_fn:使用这个参数可以自己操作每个batch的数据 -
nn.MSELoss() MSE均方损失函数 pytorch的nn.MSELoss损失函数,eg: from torch import nn nn.MSELoss()
-
StepLR() 学习率调整策略 StepLR(optimizer, step_size, gamma) 在step_size个epoch后衰减为 学习率 * gamma(学习率衰减速率)
-
time.time() 返回当前时间的时间戳
-
enumerate() 枚举,用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标
-
optimizer.zero_grad() 把梯度置零,也就是把loss关于weight的导数变成0.
-
model.train() 模型变为训练模式 启用BatchNormalization 和 Dropout
model.eval() 模型变为评估模式 不启用BatchNormalization 和 Dropout -
with 是python中上下文管理器,比如文件的写入(需要打开关闭文件)等。
-
with torch.no_grad() 强制之后的内容不进行计算图构建。
在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。 而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用 with torch.no_grad()。
-
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
-
mean() 函数功能:求取均值
-
unsqueeze() 增加一个维度
-
backward() pytorch损失函数backward进行反向传播梯度的计算
-
step() 这个方法会更新所有的参数
-
nn.Linear() pytorch 设置网络中的全连接层 eg:nn.Linear(input_dim, output_dim) 参数:输入张量,输出张量
-
nn.Sequential pytorch中,是一个Sequential容器,模块将按照构造函数中传递的顺序添加到模块中。
-
tensor.expand_as() 这个函数就是把一个tensor变成和函数括号内一样形状的tensor
-
queeze()
queeze():去除size为1的维度,包括行和列。当维度大于等于2时,squeeze()无作用。 # 其中squeeze(0)代表若第一维度值为1则去除第一维度,squeeze(1)代表若第二维度值为1则去除第二维度。 unsqueeze() 函数功能:与squeeze()函数功能相反,用于添加维度。
-
view() 功能和reshape()功能相似,其中-1代表随意
-
time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组 eg:time.strptime(curdate[:19], ‘%Y-%m-%dT%H:%M:%S’)
time.mktime() 它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数 eg:time.mktime(time.strptime(curdate[:19], ‘%Y-%m-%dT%H:%M:%S’))
这篇关于python、pytorch代码笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享