我正在使用卷积神经网络进行国际象棋。在国际象棋中,棋子可以在3x3
个块内(例如,骑士,兵,国王),1x8
等级/ 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
卷积滤波器并将非对角线值固定为零?