python - 具有不同形状的多个输入的 tensorflow.keras 模型(错误)
问题描述
Heyho,我想构建一个具有不同形状的多个输入的 Keras 模型。这是我的模型:
input_shape_board = (8,8,12)
input_board = tf.keras.Input(shape = input_shape_board, name = "board_input")
input_shape_legal = (1984)
input_legal = tf.keras.Input(shape = input_shape_legal, name = "legal_input")
a = layers.Dense(64)(input_board)
a = tf.keras.layers.LeakyReLU(alpha=0.01)(a)
a = layers.Dense(64)(a)
a = layers.Flatten()(a)
b = layers.Conv2D(64, 4, activation='relu')(input_board)
b = layers.MaxPooling2D((4,4))(b)
b = layers.Flatten()(b)
c = layers.Dense(200, activation='relu')(input_legal)
d = layers.Concatenate()([a,b,c])
d = layers.Dense(1984)(d)
outputs = layers.Activation('sigmoid')(d)
model = tf.keras.Model(inputs=(input_board, input_legal), outputs=outputs)
我后来训练(有点 - 具有适应值)以下内容:
board_array_onehot = np.ones((1,8,8,12))
tmp_arr_legal = np.ones((1984))
inputs = (board_array_onehot, tmp_arr_legal[0])
arr_predictions = models[active].predict(inputs)
我已经确定,我所有的输入都是 numpy 数组,但我现在收到以下错误:
ValueError: Failed to find data adapter that can handle input: (<class 'tuple'> containing values of types {"<class 'numpy.float64'>", "<class 'numpy.ndarray'>"}), <class 'NoneType'>
我已经用这个括号和我的输入尝试了几种不同的变体,但它仍然不起作用。非常感谢任何帮助!
解决方案
在使用这个模型的 tensorflow 中,我通过在输入的前面添加一个额外的维度来解决它。
所以虽然我已经定义:
input_shape_board = (8,8,12)
input_board = tf.keras.Input(shape = input_shape_board, name = "board_input")
input_shape_legal = (1984)
input_legal = tf.keras.Input(shape = input_shape_legal, name = "legal_input")
我实际上不得不喂食:
board_array_onehot = np.ones((1,8,8,12))
tmp_arr_legal = np.ones((1,1984))
inputs = (board_array_onehot, tmp_arr_legal[0])
arr_predictions = models[active].predict(inputs)
但我不明白为什么?
推荐阅读
- typescript - react-select 中 menuList 样式键的状态类型是什么?
- r - 将非对称矩阵转换为方阵
- c - 在 Makefile 中使用外部依赖项
- python - choice() 接受 2 个位置参数,但给出了 3 个
- java - Kotlin 中选定文本的自定义操作问题
- hibernate - 从 JBoss AS 7.1 迁移到 JBoss EAP 7.3.0
- r - 每列具有不同值的查找表
- ocaml - Return a list of the odd indices using List.map
- python - 从一系列整数中找到完美整数列表
- python - 酥脆的表单没有填充来自主键的数据