Python 将嵌入和重量标准化,用于印记重量训练?
我试着用压印权值来表示一个低水平的分类卷积网络,从这里可以看出 “与标准的ConvNet分类器架构不同,我们在嵌入提取器的末尾添加了一个L2规范化层,以便 输出嵌入具有单位长度,即| |φ(x)| | 2=1“ 以及 “softmax分类器f(φ(x))将嵌入映射到非标准化的logit分数,然后进行softmax激活,生成所有类别的概率分布,其中wi是标准化为单位长度的权重矩阵的第i列。此层中不使用偏差项” 我目前对嵌入规范化的了解是:Python 将嵌入和重量标准化,用于印记重量训练?,python,tensorflow,Python,Tensorflow,我试着用压印权值来表示一个低水平的分类卷积网络,从这里可以看出 “与标准的ConvNet分类器架构不同,我们在嵌入提取器的末尾添加了一个L2规范化层,以便 输出嵌入具有单位长度,即| |φ(x)| | 2=1“ 以及 “softmax分类器f(φ(x))将嵌入映射到非标准化的logit分数,然后进行softmax激活,生成所有类别的概率分布,其中wi是标准化为单位长度的权重矩阵的第i列。此层中不使用偏差项” 我目前对嵌入规范化的了解是: dense_nodes = 256 model_in =
dense_nodes = 256
model_in = tf.keras.Input(input_shape)
x = resnet(model_in) # pretrained resnet model with include_top = False
embedding = Dense(dense_nodes, activation="relu")(x)
norm_embedding = tf.nn.l2_normalize(embedding) # normalize the embedding before prediction layer
prediction_layer = Dense(2, activation="softmax", use_bias=False) #use_bias=False for 0 bias as stated by paper
prediction = prediction_layer(norm_embedding)
imprinted_net = Model(inputs=[model_in], outputs =prediction )
嵌入规范化是有效的还是需要在lambda层中进行规范化?
我也不确定如何按列规范化预测层的权重。我检查了tensorflow文档的LayerNormalixation和WeightNormalization,但我不确定这是否是我想要的,也不确定如何检查
任何帮助都将不胜感激