我正在尝试创建以下模型,其中所有层都共享。 如何使用功能性API做到这一点?
我得说我对它的整体工作方式有些困惑。
这是我到目前为止写的内容
s_im = keras.layers.Input(shape=s_im_dim, name='s_im')
s_aux = keras.layers.Input(shape=(s_aux_dim,), name='s_aux')
s_im0 = keras.layers.Input(shape=s_im_dim, name='s_im0')
s_aux0 = keras.layers.Input(shape=(s_aux_dim,), name='s_aux0')
s_im1 = keras.layers.Input(shape=s_im_dim, name='s_im1')
s_aux1 = keras.layers.Input(shape=(s_aux_dim,), name='s_aux1')
shared_layer = keras.layers.Conv2D(32, kernel_size=(8, 8), strides=(4, 4))(s_im)
shared_layer = keras.layers.Conv2D(64, kernel_size=(4, 4), strides=(2, 2))(shared_layer)
shared_layer = keras.layers.Flatten()(shared_layer)
s_out = keras.layers.Dense(128)(shared_layer)
concat = keras.layers.concatenate([s_out, s_aux])
f = keras.layers.Dense(256, name='features')(concat)
那是我所知道的。
现在我需要做些什么才能访问输出(f(s0)和f(s1))并使用这两个值来训练网络?
我尝试了以下操作,但出现错误,表明图形已断开连接
model_s0 = keras.Model(inputs=[s_im0, s_aux0], outputs=[f])
但是我什至需要制作多个模型吗?我不能只制作一个并同时访问所有输出吗?