首页 > 解决方案 > 如何获取作为神经网络输出的向量的一部分?

问题描述

如果我有一个内置的神经网络tensorflow 1.x,输出是一个向量 Y,我需要取Y(1:4:end)(这个符号在 MATLAB 中)的值,它在 python 中是等价的Y[0:len(Y):4]。但是,当我这样做时,我得到如下错误:

raise TypeError(_SLICE_TYPE_ERROR + ", got {!r}".format(idx))
TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got TensorShape([Dimension(None), Dimension(8)])

这意味着我认为对称为张量的 NN 的输出使用相同的命令是无效的。那么,我怎样才能为那个向量做到这一点呢?

标签: pythontensorflowdeep-learningneural-network

解决方案


len(Y)

正在返回一个 TensorShape 对象,而不是一个 int。

你能试一下吗:

Y[0:tf.size(Y):4]

获取张量中元素的数量。

你也可以试试:

Y[::4]

索引列表/数组中的每 4 个项目


推荐阅读