Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 将变量传递给类初始化定义中的nn.Conv2d参数_Image Processing_Computer Vision_Pytorch_Cnn - Fatal编程技术网

Image processing 将变量传递给类初始化定义中的nn.Conv2d参数

Image processing 将变量传递给类初始化定义中的nn.Conv2d参数,image-processing,computer-vision,pytorch,cnn,Image Processing,Computer Vision,Pytorch,Cnn,所以我想在初始化新对象时传递一些新变量,比如kernel_size。让我们假设net=Net10(5,2,4,3,1,1)。所以我得到了这个类的一个对象,它的参数我不希望总是常数,否则我将不得不定义很多类。现在,我想在self.Conv2d中传递kernel\u size,我得到一个语法错误:位置参数跟在关键字参数后面 有人知道如何解决这个问题吗?我应该把它全部改成函数而不是类吗 class Net10(nn.Module): def __init__ (self, ker

所以我想在初始化新对象时传递一些新变量,比如kernel_size。让我们假设
net=Net10(5,2,4,3,1,1)
。所以我得到了这个类的一个对象,它的参数我不希望总是常数,否则我将不得不定义很多类。现在,我想在
self.Conv2d
中传递
kernel\u size
,我得到一个语法错误:
位置参数跟在关键字参数后面
有人知道如何解决这个问题吗?我应该把它全部改成函数而不是类吗

    class Net10(nn.Module):   
    def __init__ (self, kernel_size, stride, pooling, num_classes, neurons, ActFunn, *args):
        super(Net10, self).__init__()
        self.kernel = kernel_size
        self.stride = stride
        self.pooling = pooling
        self.num_classes = num_classes
        self.neurons = neurons
        self.Actfun = ActFunn   
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel, padding=2, stride=1)                 
        self.pool = nn.MaxPool2d(pooling, pooling)
        self.fcinput= round (28 / pooling)
尝试:

self.conv1=nn.Conv2d(in_channels=1,out_channels=32,kernel_size=self.kernel,padding=2,stride=1)
更详细地说:python函数(例如conv层的
\uuuu init\uuuu
)可以有两种输入参数:位置参数:即根据输入参数在参数列表中的位置将其与函数变量相关联。
另一个“风格”是关键字参数:与关键字一起给出的参数,例如,
in_channels=1

python通常不允许位置参数和关键字参数的任意混合。
可以将位置参数后跟关键字参数,但一旦开始声明关键字参数,就不能有位置参数

self.conv1=nn.Conv2d(在_通道中=1,#关键字参数
out_channels=32,#关键字参数
内核,#位置参数(没有定义此参数的“关键字”)
padding=2,#关键字
步幅=1)#关键字

这是否回答了您的问题?我这样做了。现在我得到一个名称错误:名称“kernel”不是defined@SabaDaftari它是
kernel\u size=kernel
没有
kernel
变量,只有
self.kernel
kernel\u size
,所以它要么是
kernel\u size=self.kernel
要么是
kernel\u size=kernel\u size