如何在张量流中的切片张量上使用tf.clip_by_value()?

Eud*_*die 2 python deep-learning tensorflow

我正在使用RNN根据最近24小时的湿度和温度值预测下一小时的湿度和温度。为了训练模型,我的输入和输出张量的形状为[24,2],如下所示:

[[23, 78],
 [24, 79],
 [25, 78],
 [23, 81],
  .......
 [27, 82],
 [21, 87],
 [28, 88],
 [23, 90]]
Run Code Online (Sandbox Code Playgroud)

在这里,我只想将“湿度”列(秒)的值限制在0到100之间,因为它不能超出该值。

我用于此目的的代码是

.....
outputs[:,1] = tf.clip_by_value(outputs[:,1], 0, 100)
.....
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

'Tensor' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

什么是将tf.clip_by_value()仅用于一列的正确方法?

Dmi*_*kiy 5

我认为最直接(但可能不是最佳)的方法是outputs使用沿第二维进行分割tf.split,然后应用裁剪并连接回去(如果需要)。

temperature, humidity = tf.split(output, 2, axis=1)
humidity = tf.clip_by_value(humidity, 0, 100)

# optional concat
clipped_output = tf.concat([temperature, humidity], axis=1)
Run Code Online (Sandbox Code Playgroud)