Как сделать диагональный фильтр для сверточной нейронной сети? - PullRequest
0 голосов
/ 03 июля 2019

Я использую сверточные нейронные сети для шахмат.В шахматах фигуры могут перемещаться либо в пределах 3x3 блоков (например, рыцари, пешки, короли), вдоль файлов 1x8 ranks / 8x1 (ладьи и королевы) или вдоль диагоналей (королев и слонов).

Если я использую tensorflow, я могу создать сверточные слои, используя tf.keras.layers.Conv2D.Я знаю, как сделать фильтры, которые являются 3x3 блоками, 1x8 рангами и 8x1 файлами, следующим образом:

import tensorflow as tf

num_filters = 16
block = tf.keras.layers.Conv2D(num_filters, (3, 3)) # 3x3 block
rank = tf.keras.layers.Conv2D(num_filters, (1, 8)) # filters along a rank
file = tf.keras.layers.Conv2D(num_filters, (8, 1)) # filters along file

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...