tensorflow常用函数

一、tf.data.TFRecordDataset

tf.data.TFRecordDataset(
    filenames,
    compression_type=None,
    buffer_size=None,
    num_parallel_reads=None,
    name=None
)

filename = 'part-r-1.gz'
data = tf.data.TFRecordDataset(filename, compression_type='GZIP',buffer_size=4 * 10)

def _parse(example_proto):
    # feature_spec是tfrecord的数据格式的定义,字典结构{k(特征名):v(数据结构)}
    features = tf.io.parse_example(example_proto, feature_spec)
    return features
    
# num_parallel_calls表示要并行异步处理的数字元素。 如果未指定,则将按顺序处理元素。 如果使用值tf.data.experimental.AUTOTUNE ,则根据可用CPU动态设置并行调用的数量。
data = data.map(_parse, num_parallel_calls=4)
print(data)

Dataset.map 方法,对该数据集对象中的每一个序列化的 tf.train.Example 字符串执行 tf.io.parse_single_example 函数,从而实现反序列化。

二、embedding_lookup

tf.nn.embedding_lookup(params, ids, partition_strategy='mod', max_norm=None)
#目的是按照ids从params这个矩阵中拿向量(行),所以ids就是这个矩阵索引(行号),需要int类型。

import tensorflow as tf;
import numpy as np;
 
c = np.random.random([10,1])
b = tf.nn.embedding_lookup(c, [1, 3])
 
with tf.Session() as sess:
	sess.run(tf.initialize_all_variables())
	print sess.run(b)
	print c

[[ 0.77505197] [ 0.20635818]]
[[ 0.23976515],[ 0.77505197],[ 0.08798201],[ 0.20635818],[ 0.37183035]
,[ 0.24753178],[ 0.17718483],[ 0.38533808],[ 0.93345168],[ 0.02634772]]

分析:输出张量c的第一和第三个元素。

你可能感兴趣的:(TensorFlow,python)