Tensor切片操作中的问题

时间:2016-12-29 08:51:48

标签: tensorflow tensorflow-serving

我试图从public class Whileloop { public static void main(String[] args) { String equation = "+1x+1x+2=+1x+1x+6"; String parts[] = equation.split("="); int no = 0; System.out.println(parts[no]); int helper = 5; for (; parts[0].charAt(helper) != '-' || parts[0].charAt(helper) != '+'; helper--) { if(helper == 0){ break; }else{ System.out.println(helper); } } System.out.println(helper); } } 获取expected_out

input

如何使用TensorFlow从input = [[2],[3],[3]] expected_out = [2,3,3] 获取expected_out

2 个答案:

答案 0 :(得分:1)

在这种情况下,您希望从矩阵中删除单维条目。在TensorFlow和Numpy中,此操作称为squeeze

以下是TensorFlow的官方文档 - tf.squeeze。引自文档,

  

给定张量输入,此操作返回相同类型的张量,删除所有尺寸为1的尺寸。如果您不想删除所有尺寸1尺寸,则可以通过指定轴

删除特定尺寸1尺寸

因此,要解决您的问题,您可以将None传递给axis,默认情况下,或传递1。这是代码的样子,

expected_out = tf.squeeze(input)

,或者

expected_out = tf.squeeze(input, 1)

答案 1 :(得分:0)

使用tf.squeeze

import tensorflow as tf

input = tf.constant([[2], [3], [3]])

with tf.Session() as sess:
    print(sess.run(tf.squeeze(input)))