FailedPreconditionError () при преобразовании тензора в массив - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь выполнить пользовательскую операцию свертки, создав пользовательский слой в Keras.

Однако я получаю FailedPreconditionError()

Вот код, который я написал для функции call: ...

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)

х - это <tf.Tensor 'max_pooling2d_1/transpose_1:0' shape=(?, 32, 12, 12) dtype=float32>

Циклы являются основной частью, где я пытаюсь реализовать пользовательский фильтр, который я нашел в статье. Я отдельно разработал фильтр, и он работает, когда входное изображение и ядро ​​представляют собой двумерные массивы. Мне просто нужно ядро ​​для обучения.

...