我目前有一个 20x20 像素的网格。每个像素可以是红绿蓝或黑色。所以我对像素进行了热编码,为每个屏幕提供了一个 20x20x4 的数组。
对于我的 Deep-Q 网络,我附上了两个连续的屏幕截图,一起给出了一个 20x20x4x2 的数组。
我正在尝试构建一个卷积神经网络来估计 Q 值,但我不确定我当前的架构是否是一个好主意。目前如下图:
def create_model(self):
model = Sequential()
model.add(Conv3D(256, (4, 4,2), input_shape=(20,20,4,2)))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Conv3D(256, (2,2,1), input_shape=self.input_shape))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(64))
model.add(Dense(self.num_actions, activation='linear'))
model.compile(loss='mse', optimizer=Adam(self.learning_rate), metrics=['accuracy'])
return model
3d 卷积是个好主意吗?256过滤器是个好主意吗?过滤器 (4,4,2) 和 (2,2,1) 是否合适?我意识到答案可能非常主观,但我只是想找人指出架构中的任何直接缺陷。