代码先锋网 代码片段及技术文章聚合

pytorch的spectral_norm的使用

技术标签: 频谱归一化  python  人工智能

利用pytorch自带的频谱归一化函数,给设定好的网络进行频谱归一化。主要用于生成对抗网络的鉴别器,效果还是很明显的。

import torch
import torch.nn as nn
 
class TestModule(nn.Module):
    def __init__(self):
        super(TestModule,self).__init__()
        self.layer1 = nn.Conv2d(16,32,3,1)
        self.layer2 = nn.Linear(32,10)
        self.layer3 = nn.Linear(32,10)
 
    def forward(self,x):
        x = self.layer1(x)
        x = self.layer2(x)

model = TestModule()

def add_sn(m):
        for name, layer in m.named_children():
             m.add_module(name, add_sn(layer))
        if isinstance(m, (nn.Conv2d, nn.Linear)):
             return nn.utils.spectral_norm(m)
        else:
             return m
         
my_model = add_sn(model)
版权声明:本文为qq_37950002原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37950002/article/details/115592633

智能推荐

C++norm函数的用法

直接上代码: 输出为: 25 意思就是求范数 参考: https://blog.csdn.net/gxiaob/article/details/8471158...

torch.norm()函数的用法

目录 一、函数定义 二、代码示例 三、整体代码 一、函数定义 公式:                                               &nbs...

opencv的NORM_MINMAX参数

这个参数在normalize函数里面用到。 void cv::normalize ( InputArray  src,     InputOutputArray  dst,     double  alpha = 1,     double  beta = 0...

Eigen中norm、normalize、normalized的区别

Eigen中norm、normalize、normalized的区别 norm() 对于Vector,norm返回的是向量的二范数,即 例如: 对于Matrix,norm返回的是矩阵的弗罗贝尼乌斯范数(Frobenius Norm),即 例如: normalize() 清楚了norm()的定义后,normalize()其实就是把自身的各元素除以它的范数。返回值为void。 例如: normaliz...

Eigen中norm、normalize、normalized的区别

https://blog.csdn.net/m0_56348460/article/details/117386857 对于Vector,norm返回的是向量的二范数 对于Matrix,norm返回的是矩阵的弗罗贝尼乌斯范数(Frobenius Norm),即...

猜你喜欢

距离度量——使用 np.linalg.norm 计算两点之间的 Lp 距离

特征空间中两个实例点的距离是两个实例点相似程度的反映。可以用LpL_pLp​ distance来度量两个实例点的距离: Lp(xi,xj)=(∑l=1n∣xi(l)−xj(l)∣p))1pL_p(x_i, x_j) = \left( \sum_{l=1}^{n} \left| x_i^{(l)} - x_j^{(l)} \right|^{p} ) \right )^{\frac...

python使用np.linalg.norm和dist.euclidean计算欧式距离的速度比较

测试代码: 测试结果: np.linalg.norm: 0.343s dist.euclidean: 0.719s  结论:np.linalg.norm() 比dist.enclidean()快一倍左右,推荐使用np.linalg.norm() ...

详解torch.nn.utils.clip_grad_norm_ 的使用与原理

文章目录 clip_grad_norm_的原理 clip_grad_norm_参数的选择(调参) clip_grad_norm_使用演示 参考资料 clip_grad_norm_的原理 本文是对梯度剪裁: torch.nn.utils.clip_grad_norm_()文章的补充。所以可以先参考这篇文章 从上面文章可以看到,clip_grad_norm最后就是对所有的梯度乘以一个clip_coef...

L1norm的鲁棒性(对比L2 norm)

我们以线性回归为例子,来验证L1 norm 相对于L2 norm 具有鲁棒性。 L1 norm 线性回归模型: L2 norm 模型: 我们以误差 error 来考察两种模型的效果: matlab代码见下文 其结果为: figure 1. Hist of errors of L1 norm figure 2. Hist of errors of L2 norm 结论分析: 从图一,我们可以发现,L...

pytorch dataloader的使用

pytorch的数据往模型里输入的时候,不像tensorflow一样定义一下placeholder直接feeddict就可以,需要使用dataloader中转。 使用dataloader了以后,可以通过dataloader的传入参数控制minibatch,shuffle,并行计算时使用的cpu核心数。 而dataloader用的时候,也需要一个dataset,将数据整理成dataloader可以读...