如果我很了解,您的单个输出节点将是中间方块的下一个状态。您有足够的资源来训练模型时,无需担心隐藏层中节点的数量。对于神经网络来说,这个问题非常容易学习,因此无需担心大小。
您需要进行有监督的培训,这意味着您需要输入输入数据和匹配的预期输出。您需要确保在训练数据中将所有4个旋转都分配给相同的输出。这样,您的网络应该学会以相同的方式对待所有这些问题。
你让我感到好奇,所以我尝试了一下。我的解决方案可以在几秒钟内在旧笔记本电脑上运行约20个时间段,从而了解100%正确性。我仅将输出分类为[0,1]或[1,0],但是得到的结果与您所寻找的相同。仅供参考,是用python编写的代码:
from keras.models import Sequential
from keras.layers import Input, Dense
from keras.models import Model
from keras import optimizers
from keras.utils.np_utils import to_categorical
import helper
x_,y_ = helper.fnn_csv_toXY("conway.csv","output",False)
y_binary = to_categorical(y_)
model = Sequential()
model.add(Dense(100, activation='relu', kernel_initializer='glorot_uniform',input_shape =(9,)))
model.add(Dense(20, activation='relu', kernel_initializer='glorot_uniform'))
model.add(Dense(2, activation='softmax'))
adam=optimizers.Adam()
model.compile(optimizer=adam,
loss='categorical_crossentropy',
metrics=['acc'])
model.fit(x_, y_binary, epochs=100)