Python 将张量转换为numpy数组时发生FailedPremissionError()

Python 将张量转换为numpy数组时发生FailedPremissionError(),python,numpy,tensorflow,keras,keras-layer,Python,Numpy,Tensorflow,Keras,Keras Layer,我试图通过在Keras中创建自定义层来执行自定义卷积操作 但是,我得到了一个failedPremissionError() 这是我为调用编写的代码函数是 def call(self, x): kern_x,kern_y = self.kernel.get_shape().as_list() img_x,img_y = x.get_shape().as_list()[2:4] activation_map = np.random.random((im

我试图通过在Keras中创建自定义层来执行自定义卷积操作

但是,我得到了一个
failedPremissionError()

这是我为
调用编写的代码
函数是

def call(self, x):
        kern_x,kern_y = self.kernel.get_shape().as_list()
        img_x,img_y = x.get_shape().as_list()[2:4]
        activation_map = np.random.random((img_x - kern_x + 1, img_y - kern_y + 1))
        img = tf.Session().run(tf.Variable(x,validate_shape=False)) #this is where I am getting the error
        kern = tf.Session().run(tf.constant(self.kernel))

        for i in range(activation_map.shape[0]):
            for j in range(activation_map.shape[1]):
                activation_map[i][j] = fn1(fn2(img[i:i+kern_x,j:j+kern_y],kern))

        return tf.convert_to_tensor(fuzzy_activation_map, np.float32)
x是一个


循环是我试图实现我在一篇论文中找到的自定义过滤器的主要部分。我已经分别设计了过滤器,当输入图像和内核是numpy 2D阵列时,它可以工作。我只需要内核是可训练的

在is
op
中,给出错误原因的提示。你能捕捉到错误以获得类似的op吗?。为了捕获所有错误,请参见《如何调用函数》中的“一般错误捕获”
call(self,x)
?我正在使用Keras文档编写自定义层,其中层的主要逻辑位于调用函数中。我不知道该函数是如何调用的。但是,我可以显示图层`model=Sequential()`
model.add(Conv2D(32,(5,5),input_-shape=(1,28,28),activation='relu'))
model.add(maxpoolig2d(pool_-size=(2,2))
model.add(CustomConv2D(5))\35;这是自定义图层
`model.add(Dropout(0.2))`model.add(flatte())`model.add)(密集型(128,activation='relu'))`model.add(密集型(num_类,activation='softmax'))`