如何从一批张量中提取单个张量?

时间:2017-12-10 03:17:27

标签: tensorflow deep-learning keras

我正在尝试使用指导地图(在this研究论文之后)对双边网格进行上采样。

我创建了一个Keras图层,它接受3个输入,并将提供上采样图像:

  1. 双边形状(无,16,16,96)
  2. 形状的GuidanceMaps(无,256,256)
  3. 形状的输入图像(无,256,256,3)
  4. 此处,“无”是将在运行时决定的批量大小。

    我的动机是按如下方式执行像素计算:

    vue-cli

    问题是我们无法在批量大小上运行循环,因为它是未知的。

    我尝试了一些事情,但没有解决问题:

    1. 最初我认为lambda图层将逐个提供输入,但它提供了完整的批处理。
    2. 然后我在python中尝试了zip(),但它无法在张量上运行。 [我需要像zip()]
    3. 这样的东西
    4. 我尝试了tf.stack(),但它需要张量的所有形状和等级完全相同(在我的情况下这是不可能的)
    5. PS:这是我的第一个StackOverflow问题。如果没有以理想的方式询问,我道歉。

1 个答案:

答案 0 :(得分:0)

您需要的是tf.py_funclink

基本上,您需要编写自定义功能来满足您的需求。然而,张量流是一个象征性的框架。这会阻止您在编写普通python时声明自定义操作。您可以通过py_func' hack'访问,修改和执行您想要执行的任何操作。但是,如果在ff网络中有任何决策算法,您还可能需要定义反向传播层和计算。此外,调试此方法非常棘手且难以实现。

或者,尝试像Chainer一样逐个运行的框架。这样,您可以在键入时运行网络。