我刚刚开始玩Keras并开始制作自定义图层.但是,我对许多不同类型的图层感到困惑,这些图层的名称略有不同,但具有相同的功能.
例如,https://keras.io/layers/merge/和https://www.tensorflow.org/api_docs/python/tf/keras/backend/concatenate有三种不同形式的连接函数.
keras.layers.Concatenate(axis=-1)
keras.layers.concatenate(inputs, axis=-1)
tf.keras.backend.concatenate()
Run Code Online (Sandbox Code Playgroud)
我知道第二个用于功能API,但3之间有什么区别?文档似乎有点不清楚.
此外,对于第三个,我看到了一个代码,在下面执行此操作.连接后为什么必须有._keras_shape行?
# Concatenate the summed atom and bond features
atoms_bonds_features = K.concatenate([atoms, summed_bond_features], axis=-1)
# Compute fingerprint
atoms_bonds_features._keras_shape = (None, max_atoms, num_atom_features + num_bond_features)
Run Code Online (Sandbox Code Playgroud)
最后,在keras.layers下,似乎总共有2个重复.例如,Add()和add()等.