转载 关于指针常量与常量指针
指针常量#
1 | int *const ptr = nullptr; |
const 修饰的是指针 ptr 的值,ptr 本身不能被修改,所以指针常量必须初始化,同时我们无法对 ptr 的值进行修改。
1 | int a = 10; |
指针常量的应用场景#
例如:需要编写一个函数,实现使用传参指针的形式交换两个整形的值。
指针常量#
1 | int *const ptr = nullptr; |
const 修饰的是指针 ptr 的值,ptr 本身不能被修改,所以指针常量必须初始化,同时我们无法对 ptr 的值进行修改。
1 | int a = 10; |
指针常量的应用场景#
例如:需要编写一个函数,实现使用传参指针的形式交换两个整形的值。
FLOPs与模型时间复杂度、GPU利用率有关,Params与模型空间复杂度、显存占用有关
用法类似于numpy的resize,主要是用来改变tensor的大小
最近感觉PyTorch这个框架使用起来还是非常吃力,看别人的代码也常常有无法理解的地方,决定还是先自己研究一下PyTorch官方文档的API。在这边开个学习记录的坑…
函数常见入参:
input
:Tensor格式requires_grad
:布尔值,aotugrad是否需要记录在该Tensor上的操作size
:一般是衡量尺寸的数据,可以是多个数字或collection格式(如list或tuple等)device
:Tensor所处的设备(cuda或CPU),可以用torch.device或直接使用字符串、数值(torch.device的入参)代替。torch.randn((2,3), device=torch.device('cuda:1'))
torch.randn((2,3), device='cuda:1')
torch.randn((2,3), device=1)
dtype
:取值范围见torch.dtype
函数名前加_
是原地操作
针对官方入门教程Deep Learning with PyTorch: A 60 Minute Blitz简单做个学习记录,本文大量参考该篇博客 Respect。
torch中的Tensor是一种数据结构,其实在使用上与Python的list、numpy的array、ndarray等数据结构比较类似,可以当成一个多维数组来用。
在数学上对张量这一专业名词有特定的定义,但是反正大概理解成一个多维数组就够用了。
由于最近在看python代码的时候发现很多地方难以理解,特别是用到Numpy来处理数据的部分。在这边整理一个官方教程Numpy User Guide的简单学习笔记。本文大量参考该博客 Respect
tmux的快捷键也是一旦要用到的时候就怎么也想不起来的那种…
tmux new -s work
创建会话work<C-b>d
分离会话和终端 detach (会话会在后台运行)tmux ls
显示所有会话tmux attach -t work
重新连接到会话work正则表达式实在是记不住…
(学过自动机后忽然发觉这玩意跟正则表达式很像啊,不过还是没能记住…
每次在使用Linux终端中修改文件总会发现自己浪费很多精力在回忆VIM的快捷键上。简单写个CheatSheet,为了在想不起来的时候来这边看一下。
Update your browser to view this website correctly.&npsb;Update my browser now