Keras Pytork:使用特定过滤器卷积样本

Keras Pytork:使用特定过滤器卷积样本,keras,pytorch,convolution,Keras,Pytorch,Convolution,给定一批样本,我想用不同的过滤器对每个样本进行卷积。我已经用keras实现了这个想法,代码也起了作用: import keras.backend as K def single_conv(tupl): inp, kernel = tupl outputs = K.conv1d(inp, kernel, padding='same') return outputs # inputs and filters are given in some way res = K.sq

给定一批样本,我想用不同的过滤器对每个样本进行卷积。我已经用keras实现了这个想法,代码也起了作用:

import keras.backend as K

def single_conv(tupl):
    inp, kernel = tupl
    outputs = K.conv1d(inp, kernel, padding='same')
    return outputs

# inputs and filters are given in some way
res = K.squeeze(K.map_fn(single_conv, (inputs, filters), dtype=K.floatx()), axis=1)
有没有办法用Pytork做到这一点?

你可以试试这个

import torch.nn as nn
import torch

conv2d = nn.Conv2d(in_channels=3, out_channels=3, kernel_size=3)
inp = torch.ones((1, 3, 5, 5))
conv2d.weight = nn.Parameter(torch.ones((3, 3, 3, 3))) # You can set anything you want.
model = nn.Sequential(conv2d)
res = model(inp)
print(res.shape)
# print(res)

你可以用你想要的任何过滤器将其卷积。

检查:是的,我找到了相同的帖子,但我找不到合适的解决方案。谢谢你的回复。但我要求的是,每个样本都可以用一个特定的过滤器进行卷积。例如,给定10个样本,应该有10个过滤器,每个过滤器负责一个样本。