pytorch
LUQC638
这个作者很懒,什么都没留下…
展开
-
np.where可对tensor直接操作
if __name__ == '__main__': # pdist = torch.nn.PairwiseDistance() a = torch.tensor([1,2,3,5,6]) b = torch.tensor([1,2,3,4,5]) idx = np.where(a!=b)[0] print(a,b,idx)原因是因为会默认将tensor转换成numpy。当然也可以直接用torch.where实现。...原创 2022-07-04 11:01:12 · 373 阅读 · 1 评论 -
t-SNE可视化将训练样本单独显示
颜色和字体的设计可自行调整原创 2022-07-04 10:38:34 · 502 阅读 · 0 评论 -
python string转float原来如此简单,集合set的操作,对于动态变化的训练集操作
只需一个float就可以,这样从文件里读取string类型的数据的时候,直接float即可转换。if __name__ == '__main__': a = "0.2" print(float(a) / 10)输出:0.02集合set的操作,对于动态变化的训练集操作有时候训练集一直在变化,比如标签纠正,有些训练样本要增加或者删除,这时候用set集合操作去快速获取非训练样本。import torchif __name__ == '__main__': .原创 2022-05-28 11:25:50 · 461 阅读 · 0 评论 -
tensor.max,tensor.argmax 使用
max返回的值有两个,values和indexes。argmax返回的只是indexes。import torchimport numpy as npif __name__ == '__main__': a = torch.tensor([[1,2,3], [4,5,6]]) b = a.max(dim=1)[0] c = a.max(dim=1)[1] d = a.argmax(dim=1) b = b.re原创 2022-05-04 17:20:41 · 2136 阅读 · 0 评论 -
argsort 在numpy和torch中
默认是升序排列,调用ndarray.argsort 或者 tensor.argsort 返回的是index,加负号,将index逆序即可得到降序。import torchimport numpy as npif __name__ == '__main__': b = np.array([[2,3,4,5], [5,6,7,8], [2,2,2,2]]) # increasing order by defau原创 2022-05-03 09:24:37 · 1190 阅读 · 0 评论 -
np.newaxis,tensor.squeeze(),np.hstack,torch.hstack,torch.cat,tensor.reshape的使用
np.newaxis,tensor.squeeze()的作用比较相似,增加维度。np.hstack,torch.hstack,torch.cat([tensor,tensor],dim=1) 比较相似,连接tensor。import torchimport numpy as npif __name__ == '__main__': print(torch.__version__) # labels = torch.tensor([0, 1, 2, 0, 1, 2, 0, 1,原创 2022-05-02 17:16:09 · 703 阅读 · 0 评论 -
torch.nn.CrossEntropyLoss()
参考:torch.nn.functional 和 torch.nn 去使用softmax,logsoftmax,crossentropy等的区别_LUQC638的博客-CSDN博客参考:softmax + log = logsoftmax, logsoftmax+ nllloss= crossentropy_LUQC638的博客-CSDN博客import torchimport torch.nn as nnimport torch.nn.functional as F# Example of target原创 2022-04-14 16:45:05 · 4666 阅读 · 1 评论 -
torch.nn.functional 和 torch.nn 去使用softmax,logsoftmax,crossentropy等的区别
参考:softmax + log = logsoftmax, logsoftmax+ nllloss= crossentropy_LUQC638的博客-CSDN博客import torchimport torch.nn as nnimport torch.nn.functional as F# Example of target with class indicesinput = torch.randn(3, 5)print(f"Input is {input}")t = torch.tensor([1..原创 2021-12-31 11:01:03 · 1653 阅读 · 0 评论 -
torch.spmm矩阵乘法
Torch.spmm只支持 sparse 在前,dense 在后的矩阵乘法,两个sparse相乘或者dense在前的乘法不支持,当然两个dense矩阵相乘是支持的。import torchif __name__ == '__main__': indices = torch.tensor([[0,1], [0,1]]) values = torch.tensor([2,3]) shape = torch.Size((2,原创 2022-01-01 19:26:32 · 8609 阅读 · 6 评论 -
tqdm.write ,不打断进度条的输出
tqdm和range循环相搭配,如果循环里面有输出,那么每次输出同时输出进度条的推进。如果进度条只想显示一个,和正常的输出分开的话,可以在循环里面用到tqdm.write进行操作。from tqdm import tqdmfrom time import sleepif __name__ == '__main__': for i, j in enumerate(tqdm(range(0,5))): # print(i,j) tqdm.write("{}原创 2022-04-11 23:32:39 · 2610 阅读 · 0 评论 -
parser.add_argument metavar
metavar 感觉像元变量。使用场景主要是parser.print_help()的时候,positional argument只显示metavar的名字,optional arguments 中,变量名和metavar都会显示。如下。一个optional arguments: --epochs-taken, metavar 是 ‘N’,命名规则:__epochs不合法,前两个必须是中间横线,不能是下划线。而中间的连接线可以是下划线或者中间横线。无论是--epochs-taken 还是--epoch原创 2022-04-11 21:50:58 · 2569 阅读 · 1 评论 -
bool tensor的使用
构建或者生成的bool tensor作为index,可以方便的访问满足特定条件的相关的tensor值。import torchimport numpy as npif __name__ == '__main__': a = torch.range(0,5) print(a) b = range(0,6) print(b) for i in b: print(i) c = torch.tensor([False,True,False,原创 2022-04-10 22:09:35 · 2599 阅读 · 0 评论 -
torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False manual_seed控制程序的随机性
cuda 是NVIDIA 针对自家的CPU设计的并行计算的框架,cuDNN是is a GPU-accelerated library of primitives for deep neural networks。是专门针对深度神经网络打造的加速库。cuDNN Archive | NVIDIA Developerhttps://developer.nvidia.com/rdp/cudnn-archivetorch.backends.cudnn.benchmark = FalseReproducib原创 2022-04-10 10:53:11 · 3153 阅读 · 0 评论