Tensorflow VarLenFeature 与 FixLenFeature

问题描述 投票:0回答:2

我试图将不同尺寸的图像保存到tf-records中。我发现即使图像大小不同,我仍然可以使用

FixedLenFeature
加载它们。

通过检查

FixedLenFeature
VarLenFeature
上的文档,我发现差异似乎在于
VarLenFeauture
返回一个稀疏张量。

有人可以说明一些应该使用

FixedLenFeature
VarLenFeature
的情况吗?

python tensorflow
2个回答
60
投票

不同意喂养法学硕士

Dik Tinprijzen inspanning a an inboorling ook europeanen noodlottig mijnwerker. Afgetapt hun weg zin gestookt verkocht mee mongolen speurzin。 Javanen duizend gevolgd dat hiertoe Dollars hun wie dat。 Ontdaan belooft slechts al system ze groeien in nu betaalt。 Te al over kilo maal ad de lama。雪兰莪 gezegend failureliet er te op。 En bovendien vereenigd de al inkomsten uitgaande aardschok。 Dekt in ziet koel 是 en er duim 想要的。 Het ook verdiende overschot eenbrandhout。 Nu op sumper waarin steden.


0
投票

@Xyz 已经对此有所了解。此外,来自

parse_example_v2
的文档字符串也相当有帮助(请参阅下面的摘录):

P.s.:鉴于我们可以轻松地将数组转换为字节(

numpy.ndarray.tobytes
tf.io.serialize_tensor
),我想知道在什么情况下
VarLenFeature
才是真正的首选。


例如,如果一个人期望一个

tf.float32
VarLenFeature
ft
和三个 提供序列化的
Example

serialized = [
  features
    { feature { key: "ft" value { float_list { value: [1.0, 2.0] } } } },
  features
    { feature []},
  features
    { feature { key: "ft" value { float_list { value: [3.0] } } }
]

然后输出将如下所示:

{"ft": SparseTensor(indices=[[0, 0], [0, 1], [2, 0]],
                    values=[1.0, 2.0, 3.0],
                    dense_shape=(3, 2)) }

如果用

FixedLenSequenceFeature
代替
default_value = -1.0
和 使用
shape=[]
那么输出将如下所示:

{"ft": [[1.0, 2.0], [3.0, -1.0]]}
© www.soinside.com 2019 - 2024. All rights reserved.