Tensorflow。使用tf.atherity列表中的tf.identity时,Session.Run出错

时间:2017-10-26 03:03:49

标签: python tensorflow

我想得到两个结果列表。每个列表在(和)内部都有n个元素,然后我使用stack和concat进行分组,然后使用identity来获取对它们的引用。我希望将结果作为每个数组的数组。 < 0,...,I> = value0 < 1,...,I> = value1 。 。 。  = value_n

我的代码如下:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "^[^$@!%*?&\\n]*[$@!%*?&][^$@!%*?&\\n]*$";
final String string = "abc12312\n"
     + "$123\n"
     + "$123?\n"
     + "Alpha1?\n"
     + "@lpha1?";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}

模型已保存。

在另一个脚本中,我导入了模型,找到了all_1和all_2。

list1 = [<tf.Tensor 'Gather_1:0' shape=(?, 4) dtype=float32>, <tf.Tensor 'Gather_2:0' shape=(?, 4) dtype=float32>,.....]
list2 = [<tf.Tensor 'Gather_3:0' shape=(?,) dtype=float32>, <tf.Tensor 'Gather_4:0' shape=(?,) dtype=float32>,.....]
 all_1 = tf.identity(list1, name='all_boxes')
 all_2 = tf.identity(list2, name='all_scores')
#I also tried tf.stack
 all_1 = tf.identity(tf.stack(list1, name='all_boxes'))
 all_2 = tf.identity(tf.stack(list2, name='all_scores'))
#I also tried tf.concat. Got all the results in a single array, not an array of arrays
 all_1 = tf.identity(tf.stack(list1, name='all_boxes'))
 all_2 = tf.identity(tf.stack(list2, name='all_scores'))

但是我收到了错误

net_out = []
net_out.extend([all_1, all_2])
outputs = sess.run(net_out, feed_dict={img_ph: im})

#Also I tried to use each list individually but also got error
outputs = sess.run(all_1, feed_dict={img_ph: im})
outputs = sess.run(all_2, feed_dict={img_ph: im})

为什么它试图在输出数组的第一个元素中分配第四个元素结果的数据?我应该使用不同的方式,如tf.group,tf.pack,tf.concat或其他?

注意:如果我一个接一个地调用它们没有tf.identity,我得到的结果没有问题,但是当我导出它时会出现问题,因为n会根据大小的变化而变化我的意见。我期待只需要调用一个或两个引用来封装它们保持维度的值。 提前谢谢。

0 个答案:

没有答案