首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个tfrecord中的示例数

每个tfrecord中的示例数
EN

Stack Overflow用户
提问于 2017-03-15 00:23:56
回答 1查看 1.8K关注 0票数 0

在中运行sample.sh脚本,按照花卉示例的步骤对一组图像调用以下预处理。

https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/flowers/trainer/preprocess.py

这两种预处理方法都成功地应用到了eval集和训练集上。但是,所生成的.tfrecord.gz文件似乎与eval/train_set.csv中的映像号不匹配。

也就是说,val-00000 of-00157.tfRecor.gz表示有158个tfrecord,而eval_set.csv中有35227行。每个记录都包含一个有效的image_url (所有这些都被上传到存储),每个记录都有标记的有效标签。

想知道是否有一种方法可以监视和控制preproces.py配置中每个tfrecord中的图像数量。

谢谢

最新消息,把这件事做好:

代码语言:javascript
复制
import tensorflow as tf 
import os
from tensorflow.python.lib.io import file_io

options = tf.python_io.TFRecordOptions(
    compression_type=tf.python_io.TFRecordCompressionType.GZIP)

sum(1 for f in file_io.get_matching_files(os.path.join(url/path, '*.tfrecord.gz'))
    for example in tf.python_io.tf_record_iterator(f, options=options))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 02:35:56

文件名eval-00000-of-00157.tfrecord.gz意味着这是158中的第一个文件。应该有157个类似名称的文件。在每个文件中,可以有任意数量的记录。

如果要手动计数每条记录,请尝试如下所示:

代码语言:javascript
复制
import tensorflow as tf
from tensorflow.python.lib.io import file_io

files = os.path.join('gs://my_bucket/my_dir', 'eval-*.tfrecord.gz')
print(sum(1 for f in tf.python_io.file_io.get_matching_files(files)
            for tf.python_io.tf_record_iterator(f)))

请注意,Dataflow不能保证输入文件和输出文件之间的文件数量和记录顺序(文件间和文件内部)之间的关系。然而,这些数字应该是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42799007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档