Tensorflow / Keras: как получить выходные данные входного слоя по каналам?

#python #tensorflow #keras

#python #tensorflow #keras

Вопрос:

У меня есть входной слой, который выглядит следующим образом:

 >>>inp = tf.keras.Input(shape=(107, 3))
>>>print(inp)
Tensor("input_25:0", shape=(None, 107, 3), dtype=float32)
  

Поскольку форма есть (None, 107, 3) , я хочу использовать каждую из них (None, 107, 1) для отдельных слоев. Как мне это сделать?

Ответ №1:

Согласно связанной проблеме GitHub, вы можете использовать tf.keras.layers.Lambda для разделения входного тензора по каналам.

 import tensorflow as tf

tfkl = tf.keras.layers
inp = tf.keras.Input(shape=(107, 3))

x0 = tfkl.Lambda(lambda x : x[..., 0])(x)
x1 = tfkl.Lambda(lambda x : x[..., 1])(x)
x2 = tfkl.Lambda(lambda x : x[..., 2])(x)
  

... Является Ellipsis и заполняет фрагменты, чтобы получить только последний фрагмент.