python、pytorch代码笔记

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

上一篇:python基础


下一篇:redis详解