
pytorch
Yonggie
只写优质原创,坚决绝拒绝抄袭 | 研究员 | 广州大学 | 香港中文大学深圳FNii | pytorch_geometric(PyG)、FATE contributor
展开
-
2024.3 个人survey 医疗大模型关系梳理
大体上是这样,具体模型规格看他们的arxiv或者github吧。原创 2024-03-25 10:31:57 · 255 阅读 · 0 评论 -
【极简无废话】open3d可视化torch、numpy点云
建议直接看文档,很多都代码老了,注意把代码版本调整到你使用的open3d的版本:原创 2024-03-19 10:22:55 · 376 阅读 · 0 评论 -
quaternion四元组 保存和加载
得用quaternion 先to float array再保存,加载时候from float array转回才行。直接np.save不行的,不信你试试。原创 2024-03-19 10:12:33 · 166 阅读 · 0 评论 -
huggingface_hub.utils._validators.HFValidationError: Repo id must use alphanumeric chars or ‘-‘, ‘_‘
下载hugging face model和config.json要放在一个文件夹里面,而且这个文件夹的名字里面不能有下划线。你的文件名字的路径会被huggingface的。原创 2024-03-07 15:40:31 · 2880 阅读 · 0 评论 -
从huggingface下载模型像本地加载但是UnicodeDecodeError
原文:https://github.com/huggingface/transformers/issues/13674。也就是除了model文件之外,还要有一个config.json文件在旁边,2个是要一起的。下面的config.json和符合框架的model文件。我自己是在Linux下出现了这个问题。原创 2024-03-07 15:35:52 · 685 阅读 · 0 评论 -
【极简】Pytorch中的register_buffer()
上述的参数显然可以直接用一个变量直接定义超参。但是缺点是在用保存的时候不能保存在参数里面,只能用个文本文件保存在外面。不能直接用torch.load加载,不是很方便。举个例子,假设你有100个超参,难不成要一个一个记录之后,手动造轮子解析保存的txt嘛?当然也行,但是麻烦。就比如Diffusion Model中的beta和alpha,在每个timestep时候都是不一样的,这时候手动保存会相当麻烦,用register buffer会相当方便。原创 2024-02-01 10:23:19 · 652 阅读 · 0 评论 -
PyG edge index 转换回 邻接矩阵
PyG的edge index形式是[(node1node2node1node3...这种edge pair。原创 2023-10-30 10:30:25 · 1400 阅读 · 0 评论 -
anaconda环境迁移
在使用的时候尽管还会出现“invalid env”的提示,但是实际run起来是没有问题的。A里面所有的env都移动到B路径新的anaconda下。,把A路径下的所有env都移动到新的anaconda下。重新安装一个anaconda3,放在B路径。在路径A下的anaconda坏了。,把里面的A路径改成B路径。然后vim修改各个env下。原创 2023-09-18 10:31:35 · 265 阅读 · 0 评论 -
Linux apex安装
来源:https://blog.youkuaiyun.com/ccbrid/article/details/103207676是什么:混合精度什么用:提升GPU上的训练速度。原创 2023-06-07 14:42:45 · 563 阅读 · 0 评论 -
RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas‘
另:我自己本次error出现的情况是,公用GPU上另一个人占了99%的内存,我的内存一开始够但到了那个模块就不够了,出现了这个错误,没出现out of memory错误。其实对于这种cuda error,由于torch本身是把tensor送进去黑盒,里面发生什么事情是看不见的。但是在cpu的话,错误的定位就范围相对更小。所以在trouble shooting的时候可以。,再进行cuda的跑,(如果效率上说得过去)可以有效发现问题所在。我切换了cpu后,错误提示就比GPU清晰多了。原创 2023-05-29 16:50:27 · 1927 阅读 · 0 评论 -
IDEA封神榜大语言模型二郎神系列Erlangshen-Ubert-110M-Chinese使用
官方文档和代码中的setup有错误,我已经提了PR,如果官方不merge请大家使用我这个版本:文档,https://github.com/Yonggie/Fengshenbang-doc;代码:https://github.com/Yonggie/Fengshenbang-LM。原创 2023-05-01 14:40:31 · 827 阅读 · 1 评论 -
matplotlib plt.hist用torch tensor作输入作图极慢
背景先用torch的框架算出来了一批数据,想要看看他的直方图,结果直接放进去,plt作图慢道怀疑人生。t=cos_dist_with_tag[keep_real_term_mask]cos_dist=t[:,keep_real_term_mask] cos_dist_f=cos_dist.flatten()# torch.tensor变量plt.figure(figsize=(16,8))plt.subplot(1,2,1)plt.title('cos unwhite dist')plt原创 2022-05-23 09:56:24 · 650 阅读 · 0 评论 -
torch cosine_similarity 批量两两计算cos值
目的像sklearn里面有pairwise,里面的cosine_similarity可以计算两两之间的cos值。具体来说,对于x=[a=(1,2,3,4),b=(2,3,4,5)]x=[a=(1,2,3,4),b=(2,3,4,5)]x=[a=(1,2,3,4),b=(2,3,4,5)]这样shape是(2,4)的变量作为输入,其输出是[[cos(a,a),cos(a,b)],[cos(b,a),cos(a,b)]][[cos(a,a), cos(a,b)],[cos(b,a),cos(a,b)]][[原创 2022-05-20 15:41:56 · 2813 阅读 · 3 评论 -
pytorch tensor dot matmal mul mm @矩阵操作大全
所有操作都在此两个张量下操作。a=torch.tensor([[1,2,3],[2,3,4]])b=torch.tensor([[2,3,4],[3,4,5]])print(a.dot(b))# 不能运算,dot只能1D tensor对应元素相乘后相加。# 比如a=[1,2,3] and b=[2,3,4], 那么a.dot(b)就是1*2+2*3+3*4=一个值。print(a.mul(b)) #对应元素相乘,获得一个同shape的矩阵# 显示tensor([[ 2, 6, 12],原创 2022-05-13 20:56:25 · 575 阅读 · 0 评论 -
把pytorch变量转移到cpu中释放gpu内存
背景我想要对一个大批量的数据分批输入模型得到所有的embedding,但是过程进行到中间报 cuda out of memory。经查勘是因为早些的embedding没有及时从cuda中释放内存导致后面的model无法进行forward。解决只需要pytorch的tensor.cpu()就可以释放了。举个例子:embeddings=[]for batch in data_loader: embedding_batch=model(input_data) embeddings.append(e原创 2022-05-11 10:37:56 · 4320 阅读 · 4 评论 -
看懂tensorboard保存数据的名字
events.out.tfevents.1641821224.localhost.localdomain.191605.0按点split来看,倒数第二个191605是进程ID,最后一个数是此ID的进程进行的第几次保存原创 2022-01-10 22:01:31 · 659 阅读 · 0 评论 -
numpy ValueError: cannot delete array elements,torch TypeError: Tensor does not support deleting it
在使用numpy的array时候,不能直接用del data[3]这种写法,否则会出现标题错误。需要用人家指定的numpy.delete(data, index, axis)来删除。torch中貌似没有直接删除列元素的函数,可以自己写:def torch_delete(arr,index,axis): if axis==0: arr1 = arr[0:index] arr2 = arr[index+1:] elif axis==1: ar原创 2021-10-27 11:35:55 · 6310 阅读 · 0 评论 -
2021年强化学习框架概览
这个图其实是github上找的,左侧是platform,可以按需求挨个查找。原创 2021-10-22 16:59:17 · 262 阅读 · 0 评论 -
tensorboard同一行多个值
如果直接用tb.add_scalar('name',value,step),默认的样式是多个值出现在多行的情况:此时如果想多个值在同一行,可这样写:tb.add_scalar('name/tag',value,step),(加一个横线/)这样一行就是name,然后行内有多个值,特别适合val@k这种score。...原创 2021-09-29 19:11:09 · 707 阅读 · 0 评论 -
看懂torch geometric HeteroData
查看我参与提出的这个issue:https://github.com/pyg-team/pytorch_geometric/issues/3130原创 2021-09-14 16:37:51 · 846 阅读 · 0 评论 -
类别label互转one hot
sklearn写法太啰嗦了numpy:a=np.array([1,2,3,4])one_hot_a=np.zeros((a.size,a.max()+1))one_hot_a[np.arange(a.size),a]=1就行了。原创 2021-08-12 14:39:16 · 754 阅读 · 0 评论 -
tensorboard logdir的linux和windows中踩坑
整吐了,linux和windows tensorboard的这个参数log dir要注意这里!linux如果logdir不带后面的/号,是可以的;但是windows必须带着/号,不然不会存数据而且tb.close()会卡住,而且会报错,但是不会影响程序运行。所以他没存下来数据也不会和你说!坑爹!!!更加具体的:from torch.utils.tensorboard import SummaryWriter#win中:/号必须带!log_dir="runs/" +dataset_metapath原创 2021-05-22 13:57:28 · 702 阅读 · 0 评论 -
已知热力图数据绘制热力图
import matplotlib.pyplot as pltimport pandas as pdfrom pandas.core.frame import DataFramefrom pandas.core.indexes.base import Indeximport seabornmodels=['d-tcm-hsh','d-tcm-hdh','d-chp-hsh','d-chp-hfh','dm-chp','dm-tcm']embed_size=[str(int(64*pow(2,i原创 2021-05-12 20:42:59 · 562 阅读 · 0 评论 -
使用pycharm用远程conda、实际、venv等等解释器
只有专业版pycharm才可以用远程ssh的python解释器。如果你是学生,可以用edu邮箱,申请免费的专业版。不然的话,你可以选择vscode远程连接。连接过程很简单,首先找到File->Settings:在settings里面找到python interpreter,右侧点击齿轮,后选择添加。里面有个ssh interpreter。然后放进去你的地址账户密码等等,然后选择解释器即可。那这个解释器显然可以是conda的某个虚拟环境的,也可以是一个实际环境的,等等都可以。这里有一点和原创 2021-05-04 10:39:09 · 1171 阅读 · 0 评论 -
python安装过yaml后仍然不能导入
你是不是直接pip install yaml了或者直接conda install yaml哎,python3里面yaml的名字叫做pyyaml,逆天。pip install pyyaml或者conda install pyyaml,才行!我靠,这搞了我一下午,还让我直接去看了conda的user guide,原来是这个问题,这可真的是逆天。...原创 2021-05-02 20:09:32 · 3860 阅读 · 8 评论 -
sparse coo_matrix和torch coo_matrix转换
没办法直接转换,需要借助numpy转换。import numpy as npimport scipy.sparse as sp# a_matrix 是一个邻接矩阵tmp_coo=sp.coo_matrix(a_matrix)values=tmp_coo.dataindices=np.vstack((tmp_coo.row,tmp_coo.col))i=torch.LongTensor(indices)v=torch.LongTensor(values)edge_idx=torch.spar原创 2021-04-06 22:40:27 · 2529 阅读 · 1 评论 -
leetcode 47. 全排列
link: https://leetcode-cn.com/problems/permutations/承接这个题,先看完这个再看本篇:https://blog.youkuaiyun.com/Yonggie/article/details/115423269naive猛一看,这不之前那个题的code就能用么,粘贴一看,呵,答案是有,就是还得去重。害!不就是去重么,我直接set去重复的不就得了。ac code:class Solution {public: void fillblank(set<原创 2021-04-05 19:03:32 · 104 阅读 · 0 评论 -
torch踩坑记录loss function的输入的维度问题
前提:b_xent=torch.nn.CrossEntropyLoss()不报错案例没问题1a=torch.tensor([[0.02,0.3],[0.3,0.3]])b=torch.tensor([0,1])b_xent(a,b)Out[3]: tensor(0.7680)没问题2a=a.unsqueeze(0)b=b.unsqueeze(0)b_xent(a,b)Out[7]: tensor(0.7680)那按理说,a.shape [1,x,n],b.shape [1,原创 2021-04-05 10:29:55 · 1335 阅读 · 0 评论 -
torch_geometric.data 自建数据集
前言博客大部分都是搬运文档,是文档的翻译版,没什么意思。精细的内容还要结合文档去看。这个只是给你大致概念,不至于看文档看的头昏眼花,不是手把手教。文档:https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html一针见血数据集有两种,一个只存一个图的ImMemory类型,另一个是要存多个图DataSet的,需要额外实现len和get函数。ImMemory要实现的基本上就是官网给的:import torch原创 2021-04-04 19:14:50 · 10162 阅读 · 10 评论 -
torch sparse torch scatter安装失败
提示是说要下载微软的c++build tool,下载了,没卵用。你可以专用wheel安装,地址在这里:https://pytorch-geometric.com/whl/按照你的版本点进去,点进去之后会有所有的wheel。下载安装即可。怎么安装wheel?pip就能安。再wheel的目录下开控制台,pip install xxx.wheel即可。...原创 2021-04-01 22:15:40 · 640 阅读 · 0 评论 -
torch Sequential 多个相同的层方便的写法
先给一段示例代码: def __init__(self, ): # <TO DO: your code goes here> inside the parenthesis # parent initialization super(Model, self).__init__() # create all of the operators for the network defined in table 1 of the原创 2021-04-01 14:46:42 · 1897 阅读 · 0 评论 -
pytorch 实时物体检测
前言使用了pytorch自己提供的maskrcnn_resnet50_fpn,也就是说,不过是调用人家训练好的代码而已,当个玩具了,供大家参考。github项目其实主要的代码量在结果的显示上,并不是模型的调用上。这个是github项目链接.效果:实现思路模型调用,这个就不必细说了。使用opencv读图片然后转化成torch能吃进去的数据,input到模型中,得到返回值。根据模型的返回值,一一把label标注到原图片中然后显示图片下面的是主要代码:不能直接运行,只是思路,完整的原创 2020-12-20 10:48:36 · 1707 阅读 · 1 评论 -
coco的id和label的对应表,可复制
coco的id和index不是一一对应的,有断的地方,所以要用字典存。1:person2:bicycle3:car4:motorbike5:aeroplane6:bus7:train8:truck9:boat10:traffic light11:fire hydrant13:stop sign14:parking meter15:bench16:bird17:cat18:dog19:horse20:sheep21:cow22:elephant23:bear24:原创 2020-12-05 10:07:05 · 1431 阅读 · 0 评论 -
RuntimeError: No such operator torchvision::nms
我今天遇到了这个问题。网上大部分的博客,都要直接让torch和torchvision降级去下载,我来说点人话。抄袭那些真的有意思吗?呵呵。我的问题具体触发的原因呢,是我本来用的是cpu的torch,前些阵子直接换成了gpu的torch,由于是直接upgrade的,尽管torch本身是更新成了torch1.7.0+cu110,但是torchvision仍然是cpu版本的。于是在运行之前写好的代码的时候,就出现了上面的错误。所以,说点人话,那就是你的torch和torchvision的版本要对应。我并没原创 2020-12-04 23:35:35 · 838 阅读 · 0 评论 -
pandas显示全部的列
设置一下显示宽度就行了。# exampleimport pandas as pdpd.set_option('display.max_columns', None)pd.set_option('display.width', None)train_data=pd.read_csv('data/train.csv')test_data=pd.read_csv('data/test.csv')print(train_data.head())原创 2020-11-12 10:12:51 · 892 阅读 · 0 评论 -
下载torch时,wheel总是提示ERROR: torch-1.7.0+cu110-cp36-cp36m-win_amd64.whl is not a supported wheel on this
我们看他的下载页的主页,有个这个,cu102/torchvision-0.8.0-cp38-cp38-win_amd64.whl这个标题的一就是,cuda10.2版本的torchvision 0.8.0,python3.8 win下64位系统。下载的时候一定要注意,和自己python的版本对应!我就是这个原因。搞了下午加晚上,竟然是这么傻逼的问题。...原创 2020-11-08 23:33:53 · 8872 阅读 · 2 评论 -
去哪里找pytorch官方模型的源码
拜托!显然是github了!!不是在github直接左上角搜搜索!先搜到pytorch项目啊!链接https://github.com/pytorch/vision/tree/master/torchvision/models在这里啊喂!左上角搜到的是各路人马民间实现的,当然有用,但是不是官方的。你用框架显然是要看框架实现的网络啊喂!...原创 2020-11-05 16:02:54 · 2754 阅读 · 0 评论 -
torch expand和repeat
其实repeat和expand低维的时候很像,但是其实高维情况都不是一个东西。各位耐心看下吧,我觉得我尽力了……三维生物真的惨,高维的都没办法讲清,只能靠想象力。先说低维repeat往往接受两个参数t.repeat(2,3)表示是行重复2次,列重复3次t=[[1,2,3]]t=t.repeat(4,1)print(t.shape)# 下面是结果tensor([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]原创 2020-08-03 17:03:29 · 913 阅读 · 1 评论 -
大白话torch squeeze和unsqueeze
squeeze用大白话,亚索维度。若不指定要压缩的维度,则去除所有长度是1的维度。eg:假设原来t维度是[2,1,3,4,1,3],她的意思是,第一维度的长度是2,第二维度长度是1,以此类推。不指定维度直接t.squeeze()后,t的shape就变成了[2,3,4,3]4维。其实显然如果某个维度长度不是1,也没办法压缩呀,对吧?人家数据在摆着呢,怎么会硬生生压扁呢。所以其实squeeze能且只能压缩长度1的维度,因为他本来就是“扁”的嘛,所以才能“去掉不看” 。unsqueeze大白话,添加增原创 2020-08-03 15:44:53 · 667 阅读 · 0 评论 -
RNN系列的pytorch参数图解,手画
先放个图,有空写文字。原创 2020-06-28 09:06:21 · 275 阅读 · 0 评论