【model1第一层encoder】

第一层到第六晨的encoder结构基本一样,未发现明显的区别


Transformer(

 (encoder): Encoder(

   (linear_in): Linear(in_features=320, out_features=512, bias=True)#线性层320-512(设置偏置会占用显存

1、深度学习偏置的作用?

x1w1 + x2w2 +…+xnwn > T(T为一个阈值),而T越大,想激活这个感知器的难度越大,人工选择一个阈值并不是一个好的方法,因为样本那么多,我不可能手动选择一个阈值,使得模型整体表现最佳,那么我们可以使得T变成可学习的,这样一来,T会自动学习到一个数,使得模型的整体表现最佳。当把T移动到左边,它就成了偏置,x1w1 + x2w2 +…+xnwn - T> 0 ----->x*w +b > 0,总之,偏置的大小控制着激活这个感知器的难易程度。

(大概的意思是自动选择一个阈值而不是手动选择)

原文链接:https://blog.csdn.net/Boys_Wu/article/details/109819534

具体描述:https://blog.csdn.net/u013289254/article/details/98785869

   (layer_norm_in): LayerNorm((512,), eps=1e-05, elementwise_affine=True)

2.归一化的作用一般都是为了让数据更加稳定,减少模型的loss

BatchNorm:batch方向做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布

(魔方的前方块)

LayerNorm:channel方向做归一化,算CHW的均值,主要对RNN作用明显;

(魔方的左方块)

num_features: 来自期望输入的特征数,该期望输入的大小为’batch_size x num_features [x width]’

eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。

momentum: 动态均值和动态方差所使用的动量。默认为0.1。

affine: 布尔值,当设为true,给该层添加可学习的仿射变换参数。

track_running_stats:布尔值,当设为true,记录训练过程中的均值和方差;

原文链接:https://blog.csdn.net/shanglianlm/article/details/85075706



(positional_encoding): PositionalEncoding()

   (dropout): Dropout(p=0.1, inplace=False)

   (layer_stack): ModuleList(

     (0): EncoderLayer(

       (slf_attn): MultiHeadAttention(

         (w_qs): Linear(in_features=512, out_features=512, bias=True)

         (w_ks): Linear(in_features=512, out_features=512, bias=True)

         (w_vs): Linear(in_features=512, out_features=512, bias=True)

         (attention): ScaledDotProductAttention(

           (dropout): Dropout(p=0.1, inplace=False)

           (softmax): Softmax(dim=2)

         )

         (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)

         (fc): Linear(in_features=512, out_features=512, bias=True)

         (dropout): Dropout(p=0.1, inplace=False)

       )

       (pos_ffn): PositionwiseFeedForward(

         (w_1): Linear(in_features=512, out_features=2048, bias=True)

         (w_2): Linear(in_features=2048, out_features=512, bias=True)

         (dropout): Dropout(p=0.1, inplace=False)

         (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)

       )

     )

inplace=False 不改变原有的数据,在原来的数据上进行操作并生成一个新的数据

你可能感兴趣的:(【model1第一层encoder】)