zoukankan      html  css  js  c++  java
  • tf.train.examle函数

    在自定义数据集中:

    example = tf.train.Example(features=tf.train.Features(feature={
                    'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw])),
                    'label': tf.train.Feature(int64_list=tf.train.Int64List(value=labels))
                    })) 
    下面简要谈一谈我对其的理解
    创建 Example 对象,并且将 Feature(img_raw,label) 一一对应填充进去。并保存到writer中。
    tf.train.Example的定义如下:
    message Example {
     Features features = 1;
    };
     
    message Features{
     map<string,Feature> featrue = 1;
    };
     
    message Feature{
        oneof kind{
            BytesList bytes_list = 1;
            FloatList float_list = 2;
            Int64List int64_list = 3;
        }
    };

    从上述代码可以看出,tf.train.Example中包含了属性名称到取值的字典,其中属性名称为字符串,属性的取值可以为字符串(BytesList)、实数列表(FloatList)或者整数列表(Int64List)。

    一般tf.train.Int64List tf.train.FloatList对应处理整数和浮点数,tf.train.BytesList用于处理字符串的数据。

    从上面可以看出一个 Example 消息体包含了一系列的 feature 属性。

    每一个 feature 是一个 map,也就是 key-value 的键值对。

    key 取值是 String 类型。

                而 value 是 Feature 类型的消息体,它的取值有 3 种:

                         BytesList
                         FloatList
                         Int64List
    需要注意的是,他们都是列表的形式。

    举例说明:

    1.构建writer,用于写入数据

    2.创建 Example 对象,并且将 Feature(a,b,c) 一一对应填充进去。a,b,c三个不同格式的列表并保存到writer中

    3.# 将 example 序列化成 string 类型,然后写入。即 writer.write(example.SerializeToString());

    或者

    serialized = example.SerializeToString()
        writer.write(serialized)
    # -*- coding: utf-8 -*-
    import tensorflow as tf
    import numpy
    writer = tf.python_io.TFRecordWriter('test1.tfrecord')
    for i in range(0, 2):
        a = 0.520 + i
        b = [2019 + i, 2018+i]
        c = "测试"+str(i)
        c_raw = c
        print 'i:',i
        print '  a:',a
        print '  b:',b
        print '  c:',c
        example = tf.train.Example(
            features = tf.train.Features(
                feature = {'a':tf.train.Feature(float_list = tf.train.FloatList(value=[a])),
                           'b':tf.train.Feature(int64_list = tf.train.Int64List(value = b)),
                           'c':tf.train.Feature(bytes_list = tf.train.BytesList(value = [c_raw]))}))
        serialized = example.SerializeToString()
        writer.write(serialized)
        print '   writer',i,'DOWN!'
    writer.close()

  • 相关阅读:
    怎样用Android Studio打多包名APK
    u-boot-2014.04移植FL2440(使用eclipse编辑uboot)
    power of two
    javascript的prototype经典使用场景
    git创建与管理远程分支【转】
    error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】
    内核签名【转】
    Android系统Recovery模式的工作原理【转】
    Android系统Recovery工作原理之使用update.zip升级过程分析(三)【转】
    Recovery模式【转】
  • 原文地址:https://www.cnblogs.com/fcfc940503/p/11016619.html
Copyright © 2011-2022 走看看