我正在尝试使用keras建立一个非传统的神经网络,但在有效设置时遇到了问题。 前几层是标准的卷积层,这些层的输出有d个通道,每个通道都有n x n的图像形状。 我想要做的是使用一个密集层将这个d x n x n张量映射到大小为n x n的单个图像上。我想定义一个密集层,输入大小为d,输出大小为1,并将此函数应用于输入上的每个“像素”(输入深度跨通道)。 到目前为止,我还没有找到一个有效的解决方案。我已经尝试了首先定义一个完全连接的层,然后循环到输入中的每个“像素”,然而这需要很多小时来初始化模型,我担心它会减慢backprop,因为计算可能没有正确地并行化。 有没有一种有效的方法来做到这一点
我是PyTorch的新手,在使用了一段时间的不同工具包之后尝试使用它。
我想了解如何编程自定义层和函数。作为一个简单的测试,我写了以下代码:
class Testme(nn.Module): ## it _is_ a sublcass of module ##
def __init__(self):
super(Testme, self).__init__()
def forward(self, x):
return x / t_.max(x)
它的目的是使通过它的数据总和为1。实际上没有用,只是在测试中。
然后我将它插入到Py
我想实现一个卷积层,每个输出位置都有一个不同的卷积滤波器。具体来说,考虑输出为16*16*128 (W *H* C)的情况。我们有16*16个过滤器,而不是3*3*128个过滤器;每个过滤器的大小为3*3*128。这样,参数的数量就不会太多。
在中也有类似的想法,但我找不到特定于位置的过滤器的实现。我的问题是,如果我们想要一个特定于位置的卷积滤波器,我该如何在Tensorflow或Pytorch中实现它?我是否需要编写自己的操作,或者有一些聪明的方式来使用所提供的函数?如果我必须写一个OP,有什么技巧可以很容易地实现这个想法吗?如有任何帮助,我们不胜感激!