Nf味N=1 SQED的NSVZ关系:方案无关的高阶验证

0 下载量 57 浏览量 更新于2024-09-04 收藏 263KB PDF 举报
本文主要探讨了N=1超杨-米尔斯理论(N=1 Supersymmetric Quantum Electrodynamics, SQED)在Nf种味道(flavors)情况下的NSVZ(Novikov-Shifman-Vainshtein-Zakharov)关系。NSVZ关系是一种重要的理论工具,它在量子场论中链接了β函数(描述参数随能量尺度变化的函数)与超对称场论中的物质超域(anomaly dimension)。 首先,文章指出当组函数(renormalization group functions)基于裸耦合常数定义,并且理论通过高阶导数(higher derivative regularization)进行正则化时,N=1 SQED在所有扰动理论的阶数下可以获得精确的NSVZ β函数。这种正则化方法确保了理论在不同能量尺度下的自洽性。 然而,如果组函数是以重整化耦合常数(renormalized coupling constant)为基础定义的,NSVZ关系的适用性就依赖于特定的方案(subtraction scheme)。在这种情况下,NSVZ关系只在NSVZ方案中有效,即对于那些与Nf(味道数)成比例的项,NSVZ关系是方案独立的,而与k(2)与Nf^k(其中k是整数)成比例的项则会受到方案选择的影响。 作者通过计算三环β函数和两环异常维度的显式表达式,分别在NSVZ和MOM(Moment Subtraction)减法方案中,验证了上述方案独立性和方案相关性的结论。这种验证展示了在MOM减法中,使用高阶导数正则化和降维得到的重整化群函数在不同的减法方案下是一致的,从而支持了NSVZ关系的稳健性。 这篇论文深入研究了N=1 SQED中的NSVZ关系,强调了正则化方法和减法方案对关系影响的重要性,并提供了关键的计算证据来支持其理论框架。这对于理解超对称场论中的结构以及验证理论预测具有重要意义。

class NLayerDiscriminator(nn.Module): def init(self, input_nc=3, ndf=64, n_layers=3, norm_layer=nn.BatchNorm2d, use_sigmoid=False, use_parallel=True): super(NLayerDiscriminator, self).init() self.use_parallel = use_parallel if type(norm_layer) == functools.partial: use_bias = norm_layer.func == nn.InstanceNorm2d else: use_bias = norm_layer == nn.InstanceNorm2d kw = 4 padw = int(np.ceil((kw - 1) / 2)) sequence = [ nn.Conv2d(input_nc, ndf, kernel_size=kw, stride=2, padding=padw), nn.LeakyReLU(0.2, True) ] nf_mult = 1 for n in range(1, n_layers): nf_mult_prev = nf_mult nf_mult = min(2 ** n, 8) if n == 1: num_filters = ndf * nf_mult self.conv1 = nn.Conv2d(4 * num_filters, num_filters, kernel_size=3, padding=1) self.conv_offset1 = nn.Conv2d(512, 18, kernel_size=3, stride=1, padding=1) init_offset1 = torch.Tensor(np.zeros([18, 512, 3, 3])) self.conv_offset1.weight = torch.nn.Parameter(init_offset1) self.conv_mask1 = nn.Conv2d(512, 9, kernel_size=3, stride=1, padding=1) init_mask1 = torch.Tensor(np.zeros([9, 512, 3, 3]) + np.array([0.5])) self.conv_mask1.weight = torch.nn.Parameter(init_mask1) sequence += [ torchvision.ops.DeformConv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=2, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True) ] nf_mult_prev = nf_mult nf_mult = min(2 ** n_layers, 8) sequence += [ torchvision.ops.DeformConv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=1, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True), nn.Conv2d(ndf * nf_mult, 1, kernel_size=kw, stride=1, padding=padw) ] if use_sigmoid: sequence += [nn.Sigmoid()] self.model = nn.Sequential(*sequence) def forward(self, input): offset1 = self.conv_offset1(input) mask1 = self.conv_mask1(input) input = torch.cat([input, offset1, mask1], dim=1) return self.model(input),运行上述代码出现错误:RuntimeError: Given groups=1, weight of size [18, 512, 3, 3], expected input[1, 3, 512, 512] to have 512 channels, but got 3 channels instead,如何修改,给出代码

2023-05-30 上传