-
torch.nn.Identity() 建立一个输入模块, 什么都不做
m = nn.Identity(54, unused_argument1=0.1, unused_argument2=False)
input = torch.randn(128, 20)
output = m(input)
print(output.size())
#torch.size([128, 20]) -
einops 教程
基础:https://github.com/arogozhnikov/einops/blob/master/docs/1-einops-basics.ipynb
深度学习:https://github.com/arogozhnikov/einops/blob/master/docs/2-einops-for-deep-learning.ipynb
pytorch:https://www.cnpython.com/pypi/einops -
torch.chunk(tensor, num_chunk, dim)
将tensor分为num_chunk块,按照dim分。如果最后不够分,最后一块的纬度就会少。
例如:
a = torch.randn(5,3)
for i, data_i in enumerate(a.chunk(5, 1)):
print(i, data_i)
>>> a
(tensor([[0.1836],
[0.1468],
[0.2362]]), tensor([[0.3686],
[0.7808],
[0.4343]]), tensor([[0.8790],
[0.8243],
[0.2159]]), tensor([[0.5858],
[0.0488],
[0.1859]]), tensor([[0.6702],
[0.6231],
[0.9795]]))
-
nn.Parameter() 与一般tensor的区别:
nn.Parameter()中的元素会默认自动更新,即requires_grad默认为true
nn.Parameter会自动被认为是module的可训练参数,即加入到parameter()这个迭代器中去;而module中非nn.Parameter()的普通tensor是不在parameter中的。 -
效率太低了,淦