【发布时间】:2018-07-29 08:19:47
【问题描述】:
我正在尝试移植RocAlphaGo 来玩亚马逊游戏,在尝试实施监督策略训练器时出现问题。
from keras.models import Sequential, Model
from keras.layers.core import Activation, Flatten
from keras.layers import convolutional
defaults = {
"board": 10,
"filters_per_layer": 128,
"layers": 12,
"filter_width_1": 5
}
# copy defaults, but override with anything in kwargs
params = defaults
network = Sequential()
# create first layer
network.add(convolutional.Convolution2D(
input_shape=(6, 10, 10),
nb_filter=128,
nb_row=5,
nb_col=5,
init='uniform',
activation='relu',
border_mode='same'))
# create all other layers
for i in range(2, 13):
# use filter_width_K if it is there, otherwise use 3
filter_key = "filter_width_%d" % i
filter_width = params.get(filter_key, 3)
# use filters_per_layer_K if it is there, otherwise use default value
filter_count_key = "filters_per_layer_%d" % i
filter_nb = params.get(filter_count_key, 128)
network.add(convolutional.Convolution2D(
nb_filter=filter_nb,
nb_row=filter_width,
nb_col=filter_width,
init='uniform',
activation='relu',
border_mode='same'))
# the last layer maps each <filters_per_layer> feature to a number
network.add(convolutional.Convolution2D(
nb_filter=1,
nb_row=1,
nb_col=1,
init='uniform',
border_mode='same'))
# reshape output to be board x board
network.add(Flatten())
# softmax makes it into a probability distribution
network.add(Activation('softmax'))
- keras 1.2.0
- python 2.7
给出以下异常:
ValueError:检查模型目标时出错:预期activation_1 到 有形状 (None, 60) 但得到了形状 (10, 100) 的数组
训练数据集是一个 (10, 6, 10, 10) 数组,10 x 6 层,每层是一个 10x10 数组(棋盘),为什么模型需要 (None, 60) ?
如果 chagne input_shape=(6, 10, 10) 到 input_shape=(10, 10, 10),将得到:
ValueError:检查模型输入时出错:预期 convolution2d_input_1 具有形状 (None, 10, 10, 10) 但得到了数组 形状为 (10, 6, 10, 10)
所有代码都是here
【问题讨论】:
-
您应该使用 model.summary() 来获得输入和输出形状的概览。
标签: python tensorflow keras convolution