首页 Paddle框架 帖子详情
Conv2D 属性设置为私有???
收藏
快速回复
Paddle框架 问答深度学习 1266 9
Conv2D 属性设置为私有???
收藏
快速回复
Paddle框架 问答深度学习 1266 9

如题,为啥设置为私有?相互之间沟通就好难啊。

class _ConvNd(layers.Layer):
    def __init__(self,
                 in_channels,
                 out_channels,
                 kernel_size,
                 transposed,
                 dims,
                 stride=1,
                 padding=0,
                 padding_mode='zeros',
                 output_padding=0,
                 dilation=1,
                 groups=1,
                 weight_attr=None,
                 bias_attr=None,
                 data_format="NCHW"):
        super(_ConvNd, self).__init__()
        assert weight_attr is not False, "weight_attr should not be False in Conv."
        self._param_attr = weight_attr
        self._bias_attr = bias_attr
        self._groups = groups
        self._in_channels = in_channels
        self._out_channels = out_channels
        self._data_format = data_format
0
收藏
回复
全部评论(9)
时间顺序
AIStudio810259
#2 回复于2021-02

torch的对比下。

# coding=utf-8
r"""Quantized convolution modules."""

from typing import Optional, List

import torch
import torch.nn as nn
import torch.nn.intrinsic as nni
import torch.nn.intrinsic.qat as nniqat

from torch._ops import ops
from torch.nn.modules.utils import _single, _pair, _triple
from torch.nn.quantized.modules.utils import _pair_from_first
from torch.nn.quantized.modules.utils import _quantize_weight
from torch.nn.utils import fuse_conv_bn_weights

class _ConvNd(nn.Module):

    def __init__(self, in_channels, out_channels, kernel_size, stride,
                 padding, dilation,
                 transposed, output_padding,
                 groups, bias,
                 padding_mode='zeros'):
        super(_ConvNd, self).__init__()
        if padding_mode != 'zeros':
            raise NotImplementedError(
                "Currently only zero-padding is supported by quantized conv")
        if in_channels % groups != 0:
            raise ValueError('in_channels must be divisible by groups')
        if out_channels % groups != 0:
            raise ValueError('out_channels must be divisible by groups')
        self.in_channels = in_channels
        self.out_channels = out_channels
        self.kernel_size = kernel_size
        self.stride = stride
        self.padding = padding
        self.dilation = dilation
        self.transposed = transposed
        self.output_padding = output_padding
        self.groups = groups
        self.padding_mode = padding_mode
0
回复
AIStudio810259
#3 回复于2021-02

设置为私有,后面修改很麻烦。。。

0
回复
AIStudio810259
#4 回复于2021-02

灵活性降低了80%估计

0
回复
AIStudio810258
#5 回复于2021-02

封装完善的代价就是不够灵活

0
回复
AIStudio810258
#6 回复于2021-02

是不是推荐使用更基础的算子自己实现啊

0
回复
AIStudio810259
#7 回复于2021-02
封装完善的代价就是不够灵活

有这个困难

0
回复
AIStudio810258
#8 回复于2021-02
有这个困难

其实这个原则是对的,新算子自己造吧

0
回复
dragonli0918
#9 回复于2021-03

这简直是骨灰级微操作

0
回复
AIStudio810258
#10 回复于2021-03

私有了,以后想对齐精度怎么办啊。。。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户