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

    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'))
    
  35. eval()

    eval() 函数用来执行一个字符串表达式,并返回表达式的值。
    eg:lam = eval("[0.1,0.001]")     将字符串型转换为list型数据。
    
  36. assert()

    用于判断一个表达式,在表达式条件为 false 的时候触发异常。
    eg:assert len(lam) == 2 如果lam的长度不为2,直接报错
    
  37. os.getcwd() 用于返回当前工作目录

  38. os.path.join():连接两个或更多的路径名

    eg:os.path.join(os.getcwd(), "History", "yelp")
    输出为D:\WorkSpace\PythonWorkSpace\KCGN-master\History\yelp
    
  39. pickle.load()

    	反序列化对象,将文件中的数据解析为一个python对象。file中有read()接口和readline()接口
    	pickle.load(file)
    
  40. with

    效果类似于try-catch
    比如:文件使用后自动关闭/线程中锁的自动获取和释放等
    with open(self.datasetDir + '/multi_item_adj.pkl', 'rb') as fs:
        multi_adj_time = pickle.load(fs)
    
  41. Numpty astype

    df.astype('数据类型')                        #改变整个df的数据类型
    df['列名'].astype('数据类型')              #仅改变某一列的数据类型
    
  42. Numpty shape

    快速读取矩阵的形状,第一维长度,第二维长度
    eg:self.userNum, self.itemNum = trainMat.shape
    		a.shape[0] 读取第一维长度
    		a.shape[1] 读取第二维长度
    
  43. Numpty nnz

    .nnz 矩阵非零元素的数量
    eg:log("uu num = %d"%(uuMat.nnz))
    
  44. Numpty nonzero

    	nonzero(a),返回不为0的索引,a若为二维数组,则返回两行array(),第一行为不为0的行索引,第二行为不为0的列索引
    	eg:uuMat_edge_src, uuMat_edge_dst = uuMat.nonzero()
    	eg:print(len(a.nonzero()[0]))            # 非零元素的个数
    			print(a[a.nonzero()])                 # 非零元素的值
    
  45. networkx Graph

    import networkx as nx
    nx.Graph() 创建一个空的无向图
    nx.Graph(mat)  根据邻接矩阵创建无向图
    
  46. networkx connected_components

    nx.connected_components(graph)   或者连通分支,即子图
    subGraphList = list(nx.connected_components(graph))  得到连通的子图列表
    
  47. for循环

    # 生成一个长度为node_num,值全部为-1的node_subGraph数组
    node_subGraph = [-1 for i in range(node_num)]
    
  48. dok_matrix

       dok_matrix(m, n) 创建一个m*n的稀疏矩阵
    
  49. Numpty sum

       sum(a) 默认为对输入参数中的所有元素进行求和
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pytorch是机器学习中的一个重要框架,它与TensorFlow一起被认为是机器学习的两大框架。Pytorch的学习可以从以下几个方面入手: 1. Pytorch基本语法:了解Pytorch的基本语法和操作,包括张量(Tensors)的创建、导入torch库、基本运算等\[2\]。 2. Pytorch中的autograd:了解autograd的概念和使用方法,它是Pytorch中用于自动计算梯度的工具,可以方便地进行反向传播\[2\]。 3. 使用Pytorch构建一个神经网络:学习使用torch.nn库构建神经网络的典型流程,包括定义网络结构、损失函数、反向传播和更新网络参数等\[2\]。 4. 使用Pytorch构建一个分类器:了解如何使用Pytorch构建一个分类器,包括任务和数据介绍、训练分类器的步骤以及在GPU上进行训练等\[2\]。 5. Pytorch的安装:可以通过pip命令安装Pytorch,具体命令为"pip install torch torchvision torchaudio",这样就可以在Python环境中使用Pytorch了\[3\]。 以上是一些关于Pytorch学习的笔记,希望对你有帮助。如果你需要更详细的学习资料,可以参考引用\[1\]中提到的网上帖子,或者查阅Pytorch官方文档。 #### 引用[.reference_title] - *1* [pytorch自学笔记](https://blog.csdn.net/qq_41597915/article/details/123415393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Pytorch学习笔记](https://blog.csdn.net/pizm123/article/details/126748381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值