论文代码笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


在这里插入图片描述

在这里插入图片描述

  • 检查tensor x的大小
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 对张量中所有元素进行求和
    在这里插入图片描述
  • 广播机制
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • X < Y 也是一个同维度的tensor
    在这里插入图片描述
    在这里插入图片描述
  • pandas.read_csv() #加载原始数据集
    在这里插入图片描述

os.listdir(path)

https://blog.csdn.net/qq_29931083/article/details/107765186
返回值为制定路径下的文件或者文件夹的列表。

enumerate() 函数

https://www.runoob.com/python/python-func-enumerate.html
在这里插入图片描述

python操作h5文件

https://zhuanlan.zhihu.com/p/549538285
光场数据集h5文件比较多。

python中的[:, ::-1]

在这里插入图片描述

# 对列表进行反转
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list)  # 输出: [5, 4, 3, 2, 1]

# 对字符串进行反转
my_string = "Hello, World!"
reversed_string = my_string[::-1]
print(reversed_string)  # 输出: "!dlroW ,olleH"

# 对二维数组进行列逆序排列
my_array = [[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]]
reversed_array = my_array[:, ::-1]
print(reversed_array)
# 输出:
# [[3, 2, 1],
#  [6, 5, 4],
#  [9, 8, 7]]

pytorch中为什么要使用日志

在这里插入图片描述

@staticmethod

在这里插入图片描述

class MyClass:
    @staticmethod
    def my_static_method(arg1, arg2):
        # 静态方法的实现
        # 不依赖于实例的属性或方法
        return arg1 + arg2

# 通过类名调用静态方法
result = MyClass.my_static_method(3, 5)
print(result)  # 输出: 8

在这里插入图片描述

ubuntu压缩文件夹

zip -r 压缩后的文件名.zip 原文件的路径

with as

在这里插入图片描述
在这里插入图片描述

random.random()

返回随机生成的一个实数,它在[0,1)范围内。

importlib.import_module()

https://blog.csdn.net/edward_zcl/article/details/88809212

torch.load()

https://blog.csdn.net/pearl8899/article/details/109566084

torch.backends.cudnn.benchmark

在这里插入图片描述
为整个网络的每个卷积层搜索最适合的卷积实现算法,用来加速网络的训练需要手动开启。

to.(device)

https://blog.csdn.net/weixin_41503889/article/details/120349496
在这里插入图片描述

在这里插入图片描述
将所有最开始读取数据时的tensor变量copy一份到device所指定的GPU上去,之后的运算都在GPU上进行。

torch.optim.lr_scheduler.StepLR

在这里插入图片描述
optimizer:优化器
step_size:number of epochs to update learning rate
gamma:更新学习率的乘法因子,如经过15个epoch减半,则gamma为0.5

torch.utils.data.DataLoader

在这里插入图片描述

        dataset (Dataset) – dataset from which to load the data.
        要从中加载数据的数据集。

        batch_size (int, optional) – how many samples per batch to load (default: 1).
        每批次要装载多少样品 

        shuffle (bool, optional)set to True to have the data reshuffled at every epoch (default: False).
        设置为True以使数据在每个时期都重新洗牌 

        sampler (Sampler or Iterable, optional) – defines the strategy to draw samples from the dataset. Can be any Iterable with __len__ implemented. If specified, shuffle must not be specified.
        定义从数据集中抽取样本的策略

        batch_sampler (Sampler or Iterable, optional) – like sampler, but returns a batch of indices at a time. Mutually exclusive with batch_size, shuffle, sampler, and drop_last.
        类似于采样器,但一次返回一批索引。 与batch_size,shuffle,sampler和drop_last互斥。 

        num_workers (int, optional) – how many subprocesses to use for data loading. 0 means that the data will be loaded in the main process. (default: 0)
        多少个子流程用于数据加载。 0表示将在主进程中加载数据。 (默认值:0) 
        
        collate_fn (callable, optional) – merges a list of samples to form a mini-batch of Tensor(s). Used when using batched loading from a map-style dataset.
        合并样本列表以形成张量的小批量。

        pin_memory (bool, optional) – If True, the data loader will copy Tensors into CUDA pinned memory before returning them. If your data elements are a custom type, or your collate_fn returns a batch that is a custom type.
		如果为True,则数据加载器在将张量返回之前将其复制到CUDA固定的内存中。 如果您的数据元素是自定义类型,或者您的collate_fn返回的是一个自定义类型的批处理

        drop_last (bool, optional)set to True to drop the last incomplete batch, if the dataset size is not divisible by the batch size. If False and the size of dataset is not divisible by the batch size, then the last batch will be smaller. (default: False)
        如果数据集大小不能被批量大小整除,则设置为True以删除最后一个不完整的批量。 如果为False并且数据集的大小不能被批次大小整除,则最后一批将较小。 

        timeout (numeric, optional)if positive, the timeout value for collecting a batch from workers. Should always be non-negative. (default: 0)
		如果为正,则为从工作人员收集批次的超时值。 应始终为非负数。 (默认值:0) 
		
        worker_init_fn (callable, optional) – If not None, this will be called on each worker subprocess with the worker id (an int in [0, num_workers - 1]) as input, after seeding and before data loading. (default: None)

        prefetch_factor (int, optional, keyword-only arg) – Number of samples loaded in advance by each worker. 2 means there will be a total of 2 * num_workers samples prefetched across all workers. (default: 2)
        每个子流程预先加载的样本数。 2表示将在所有子流程中预取总共2 * num_workers个样本。 (默认值:2) 

        persistent_workers (bool, optional) – If True, the data loader will not shutdown the worker processes after a dataset has been consumed once. This allows to maintain the workers Dataset instances alive. (default: False)
		如果为True,则一次使用数据集后,数据加载器将不会关闭工作进程。 这样可以使Worker Dataset实例保持活动状态。 (默认值:False

将for循环里的内容在一行内输出

python3中print()会自动换行,end属性默认为换行符\n,此时将end属性改为‘’,就不会自动换行了
在这里插入图片描述
在这里插入图片描述

进度条库tqdm

https://zhuanlan.zhihu.com/p/163613814

在这里插入图片描述
total:项目总数
ncols:进度条宽度

optimizer.zero_grad()

在这里插入图片描述
通常三个一起使用,作用分别是先将梯度归零(optimizer.zero_grad()),然后反向传播计算得到每个参数的梯度值(loss.backward()),最后通过梯度下降执行一步参数更新(optimizer.step())

torch.cuda.empty_cache()

用于释放缓冲区
https://blog.csdn.net/hxxjxw/article/details/119777443

append

https://blog.csdn.net/wangyuxiang946/article/details/122142534

模型的保存和加载

https://blog.csdn.net/weixin_40522801/article/details/106563354

scheduler.step()

用来更新学习率
https://blog.csdn.net/qq_20622615/article/details/83150963

https://blog.csdn.net/weixin_49005845/article/details/125641586?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-125641586-blog-99963586.235%5Ev36%5Epc_relevant_anti_vip&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-125641586-blog-99963586.235%5Ev36%5Epc_relevant_anti_vip&utm_relevant_index=1

nn.Sequential(*layer)

https://blog.csdn.net/u013548568/article/details/80294708

nn.dropout()

https://blog.csdn.net/weixin_47050107/article/details/122722516

rearrange

https://zhuanlan.zhihu.com/p/342675997

permute

将tensor得维度换位置
在这里插入图片描述

Unfold函数

https://blog.csdn.net/ViatorSun/article/details/119940759
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

view函数

类似于reshape

contiguous函数

https://blog.csdn.net/kdongyi/article/details/108180250
深拷贝

torch.nn.functional.interpolate

https://blog.csdn.net/qq_44289607/article/details/123510897
用于插值和上采样

assert

在这里插入图片描述
assert后面得命令正确则,继续往下执行,否则就崩溃

torch.linspace

在这里插入图片描述
返回一个一维tensor,包含在区间0和self.token_dim - 1上均匀间隔的self.token_dim个点。

squeeze

从数组的形状中删除单维度条目,即把shape中为1的维度去掉
https://blog.csdn.net/zenghaitao0128/article/details/78512715

torch.optim.Adam()

https://blog.csdn.net/Ibelievesunshine/article/details/99624645

hasattr() 函数

在这里插入图片描述
hasattr(object, name)如果有该属性,则返回true,否则返回false

torch.unsqueeze()和torch.squeeze()

https://zhuanlan.zhihu.com/p/86763381
前者是扩张维度,后者是缩小维度

nn.init.kaiming_uniform_()

神经网络权重初始化,了解作用即可我感觉,到时候仿照着用。

4D的rearrange

SpaTrans
在这里插入图片描述
b:batch
a:angRes
c:channel
h:height
w:width
在这里插入图片描述
AngTrans
在这里插入图片描述
在这里插入图片描述

masked_fill()

在这里插入图片描述
代码的意思是把atten_mask这个mask里面值为0的地方替换成-inf(负无穷),然后把mask里面值为1的地方替换为0.0
在这里插入图片描述
在这里插入图片描述

.item()

在这里插入图片描述
.item()用于提取只包含一个元素的tensor里取值,loss里用这个为了防止tensor无线叠加导致的显存爆炸。提取多个元素的tensor中的值用.tolist()。
在这里插入图片描述
在这里插入图片描述

model.eval()

在这里插入图片描述

image.convert()

用来实现不同图像格式的转换

with torch.no_grad()

https://blog.csdn.net/sazass/article/details/116668755

multinomial.Multinomial(1, fair_probs).sample()

https://blog.csdn.net/qq_44788215/article/details/127249308

len(train_loader)和batchsize之间的关系

train_loader = DataLoader(dataset=train_set, num_workers=12, batch_size=cfg.batch_size, shuffle=True)

假如有15680个图片,batchsize为4,则len(train_loader)为3920,即每份有4张图片,有3920份
如果batchsize为2,则len(train_loader)为7840
在这里插入图片描述

SAI2MacPI

在这里插入图片描述

在这里插入图片描述
i = 0, j = 0时,相当于把[0, 0], [0, 64], [64, 0], [64, 64]这四个像素点拿出来组成[0, 0]位置的宏像素点,放到list temp V中。当i = 0,j = 1时,相当于把[1, 1], [1, 65], [65, 1], [65, 65]这四个像素点拿出来组成[0, 1]位置的宏像素点,并把它放到list temp V中。当i = 0,j = 63时,形成[0, 63]位置的宏像素点,此时,第一行的所有宏像素点拼好了,然后把他们按照V维度concat起来。等第二行的宏像素图像形成之后,加入到list temp U中,等到所有宏像素点形成之后,把64行的宏像素点按照U维度concat起来。

MacPI2SAI

在这里插入图片描述
和SAI2MacPI类似,i = 0, j = 0时相当于,横着,每隔7个,竖着每7个,也就是64个像素点,取出来组成每个SAI,然后i = 0,j = 6时,相当于第一行的SAI形成了,按照列的维度concat起来,7行的SAI形成后,再按照行的维度concat起来。

time.ctime

time.ctime()[4:-5]

time.ctime() 是 Python 中的一个函数,用于返回当前时间的字符串表示形式。这个字符串的格式通常类似于:“Mon Aug 11 13:50:20 2023”,其中包括了星期、月份、日期、时间和年份信息。
time.ctime()[4:-5]是截取了time.ctime()中的字符串,从第5个位置到第倒数第六个位置,即Aug 11 13:50:20

nn.LayerNorm()

https://blog.csdn.net/weixin_41978699/article/details/122778085
如果输入数据是4维,bchw,要nn.LayerNorm©,那么默认对最后一维进行归一化,所以需要将输入进行rearrange,即变为(b, h, w, c)。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值