关于学习过程中的小点

  • nfev : 函数求值次数
  • njev : Jacobian 评估的数量
  • nit :算法的迭代次数

 

permute(dims)#维度转换
torch.split #[按块大小拆分张量]

 Pytorch.view

 Pytorch中使用view()函数对张量进行重构维度,类似于resize()、reshape()。用法如下:view(参数a,参数b,...),其中总的参数个数表示将张量重构后的维度,如果参数=-1,表示这该维度由pytorch自己补充。

例如 张量a的维度为1*6,a.view(2,3)的维度为2*3,a.view(-1,2,1)的维度为3*2*1

 torch.Size

torch.Size括号中有几个数字就是几维
第一层(最外层)中括号里面包含了两个中括号(以逗号进行分割),这就是(2,3,4)中的2
第二层中括号里面包含了三个中括号(以逗号进行分割),这就是(2,3,4)中的3
第三层中括号里面包含了四个数(以逗号进行分割),这就是(2,3,4)中的4 

 

 F.softmax

 F.softmax作用:
按照行或者列来做归一化的
F.softmax函数语言格式:

# 0是对列做归一化,1是对行做归一化
F.softmax(x,dim=1) 或者 F.softmax(x,dim=0)

F.log_softmax作用:
在softmax的结果上再做多一次log运算
F.log_softmax函数语言格式: 

F.log_softmax(x,dim=1) 或者 F.log_softmax(x,dim=0)

 logits

(1)总结来说就是:

f(wx+b)之后的输出,没有归一化的输出值,作为logits。

将logits进行softmax归一化,得到最后的结果。

(2)具体来说是:

也可以这么理解:logits与 softmax都属于在输出层的内容,

logits = tf.matmul(X, W) + bias

再对logits做归一化处理,就用到了softmax:

Y_pred = tf.nn.softmax(logits,name='Y_pred')

——————————————————————

Unscaled log probabilities of shape [d_0, d_1, ..., d_{r-1}, num_classes] and dtype float32 or float64.

可以理解logits ——【batchsize,class_num】是未进入softmax的概率,一般是全连接层的输出,softmax的输入。

CausalLMOutputWithPast 

因果语言模型(或自回归)输出的基类

dict 对象

Python 中的 dict 对象是一种 关联式容器 对象,用于保存由 键 ( key )到 值 ( value )的映射关系。 借助关联式容器,程序可快速定位到与指定 键 相关联的 值 。 dict 对象在 Python 程序中使用频率非常高,如果应用不当将严重影响程序的执行效率。

实验参数

run_language_modeling.py

mlm: bool = field(
        default=False, metadata={"help": "训练mask语言模型而不是语言模型"}
    )
mlm_probability: float = field(
        default=0.15, metadata={"help": "mask语言模型token的loss速率"}
    )
plm_probability: float = field(
        default=1 / 6,
        metadata={
            "help": "置换语言建模时屏蔽令牌的跨度长度与周围上下文长度的比率。"
        },
    )
max_span_length: int = field(
        default=5, metadata={"help": "用于置换语言建模的屏蔽令牌跨度的最大长度。"}
    )
train_embs: Optional[str] = field(
        default='no', metadata={"help": "whether the train word embeddings"}
    )

max_source_length: Optional[int] = field(
        default=512, metadata={"help": "the max source length of summarization data. "}
    )

train_max_target_length: Optional[int] = field(
        default=100, metadata={"help": "the max target length for training data. "}
    )

val_max_target_length: Optional[int] = field(
        default=100, metadata={"help": "the max target length for dev data. "}
    )

model.train():
在使用pytorch构建神经网络的时候,训练过程中会在程序上方添加一句model.train(),作用是启用batch normalization和drop out。

model.eval():
测试过程中会使用model.eval(),这时神经网络会沿用batch normalization的值,并不使用drop out。

 tensor.detach()

从计算图中脱离出来。

假设有模型A和模型B,我们需要将A的输出作为B的输入,但训练时我们只训练模型B. 那么可以这样做:

input_B = output_A.detach()

它可以使两个计算图的梯度传递断开,从而实现我们所需的功能。

返回一个新的tensor,新的tensor和原来的tensor共享数据内存,但不涉及梯度计算,即requires_grad=False。修改其中一个tensor的值,另一个也会改变,因为是共享同一块内存,但如果对其中一个tensor执行某些内置操作,则会报错,例如resize_、resize_as_、set_、transpose_。

 torch.mean()

mean()函数的参数:dim=0,按列求平均值,返回的形状是(1,列数);dim=1,按行求平均值,返回的形状是(行数,1),默认不设置dim的时候,返回的是所有元素的平均值。

CrossEntropyLoss()///criterion

对数似然损失函数

torch.pairwise_distance():

计算特征图之间的像素级欧氏距离

  • x1:第一个输入的张量
  • x2:第二个输入的张量
  • p:矩阵范数的维度。默认值是2,即二范数。

transforms.Lambda

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值