ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python、pytorch代码笔记

2021-10-19 11:01:55  阅读:151  来源: 互联网

标签:函数 nn python eg 笔记 pytorch time 维度


  1. 文件读写
    ①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中的函数 读取数据文件,这里的数据文件要求每一行数据的格式相同

  2. pass: 不做任何事情,一般用做占位语句。

  3. dtype: 数据类型

  4. set() 创建一个无序不重复元素集,可删除重复数据

  5. list() 用于将元组转换为列表,将()转为[]

  6. shuffle() 将序列的所有元素随机排序 eg:import random random.shuffle(list)

  7. dump() 将对象obj保存到文件file中去 eg:import pickle pickle.dump(obj, file) pickle.HIGHEST_PROTOCOL 这是一个整数,表示最高可用的协议版本 eg:pickle.dump(train_set, f, pickle.HIGHEST_PROTOCOL)

  8. DataFrame() 数据统计(例如excel) 是一个表格型的数据结构 eg:import pandas as pd pd.DataFrame(list, columns = [‘uid’, ‘iid’, ‘label’])

  9. str.format() 格式化字符串 eg:print(‘Train samples: {}, Valid samples: {}’.format(len(train_set), len(valid_set)))

  10. sort_values() axis=0/1 行/列,ascending=True/False 升序/降序,by=’’ 按照哪一列或者行排序 eg:train_df = train_df.sort_values(axis = 0, ascending = True, by = ‘uid’)

  11. range() 创建一个整数列表 range(start, stop, step) 包含start不包含stop

  12. tqdm(iterator) Python进度条 在Python长循环中添加一个进度提示信息 eg:for u in tqdm(range(user_count + 1))

  13. toList() 将数组/矩阵转换为列表 eg:hist[‘iid’].tolist()

  14. os.path.dirname(path) 去掉文件名,返回目录

  15. 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的数据

  16. nn.MSELoss() MSE均方损失函数 pytorch的nn.MSELoss损失函数,eg: from torch import nn nn.MSELoss()

  17. StepLR() 学习率调整策略 StepLR(optimizer, step_size, gamma) 在step_size个epoch后衰减为 学习率 * gamma(学习率衰减速率)

  18. time.time() 返回当前时间的时间戳

  19. enumerate() 枚举,用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标

  20. optimizer.zero_grad() 把梯度置零,也就是把loss关于weight的导数变成0.

  21. model.train() 模型变为训练模式 启用BatchNormalization 和 Dropout
    model.eval() 模型变为评估模式 不启用BatchNormalization 和 Dropout

  22. with 是python中上下文管理器,比如文件的写入(需要打开关闭文件)等。

  23. with torch.no_grad() 强制之后的内容不进行计算图构建。

    	在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。
    	而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用 with torch.no_grad()。
    
  24. extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

  25. mean() 函数功能:求取均值

  26. unsqueeze() 增加一个维度

  27. backward() pytorch损失函数backward进行反向传播梯度的计算

  28. step() 这个方法会更新所有的参数

  29. nn.Linear() pytorch 设置网络中的全连接层 eg:nn.Linear(input_dim, output_dim) 参数:输入张量,输出张量

  30. nn.Sequential pytorch中,是一个Sequential容器,模块将按照构造函数中传递的顺序添加到模块中。

  31. tensor.expand_as() 这个函数就是把一个tensor变成和函数括号内一样形状的tensor

  32. queeze()

    queeze():去除size为1的维度,包括行和列。当维度大于等于2时,squeeze()无作用。
    #         其中squeeze(0)代表若第一维度值为1则去除第一维度,squeeze(1)代表若第二维度值为1则去除第二维度。
    unsqueeze() 函数功能:与squeeze()函数功能相反,用于添加维度。
    
  33. view() 功能和reshape()功能相似,其中-1代表随意

  34. 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’))

标签:函数,nn,python,eg,笔记,pytorch,time,维度
来源: https://blog.csdn.net/ZZZ___bj/article/details/120841629

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有