首页 > 解决方案 > 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)用于单独的图层。我怎么做?

标签: pythontensorflowkeras

解决方案


根据相关的 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并填充切片以仅获取最后一个切片。


推荐阅读