简体   繁体   English

Keras 功能 API 层不兼容问题

[英]Keras Functional API imcompatible layer problem

I was trying to make DDPG_critic's neural network layer with code,我试图用代码制作 DDPG_critic 的神经网络层,

def get_critic():
    #num_states = 8 ; num_actions = 2
    state_input = Input(shape=(num_states,),name='critic_state_input_layer')
    state_out = Dense(32, activation="relu",name='critic_state_output_layer')(state_input)

    action_input = Input(shape=(num_actions,),name='critic_action_input_layer')
    action_out = Dense(32,activation="relu",name='critic_action_output_layer')(action_input)

    concat = layers.Concatenate(axis=-1)([state_out, action_out])

    out3 = Dense(256, activation="relu",name='critic_out3_layer')(concat)
    out4 = Dense(256, activation="relu",name='critic_out4_layer')(out3)
    outputs = Dense(1,name='critic_output_layer')(out4)

    model = Model([state_input, action_input], outputs,name='critic_model')

And I got problem about我有问题

ValueError: Exception encountered when calling layer "critic_model" (type Functional).

Input 0 of layer "critic_action_output_layer" is incompatible with the layer: expected axis -1of input shape to have value 2, but received input with shape (64, 1)

It would be thankful if you point out the problem and how to solve it!如果您指出问题以及如何解决,将不胜感激!

Model architecture has no issue. Model 架构没有问题。 Check your input data shape检查您的输入数据形状

import tensorflow as tf
state_input = tf.keras.Input(shape=(8,),name='critic_state_input_layer')
state_out = tf.keras.layers.Dense(32, activation="relu",name='critic_state_output_layer')(state_input)
state_out.shape

Output Output

TensorShape([None, 32])

Second layer第二层

action_input = tf.keras.Input(shape=(2,),name='critic_action_input_layer')
action_out = tf.keras.layers.Dense(32,activation="relu",name='critic_action_output_layer')(action_input)
action_out.shape

Output Output

TensorShape([None, 32])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM