TensorFlow常见的函数用法,会不断更新,用最简洁的例子展示
tf.reduce_all()
tf.train.load_variable(checkpoint, name)
预训练模型的权重是如何加载到模型中的
tensorflow中TFRecord文件的保存和读取(没有多余的代码)
1.创建 tf.Example 消息
import tensorflow as tf
tf.enable_eager_execution()
import numpy as np
x=[5,2,0]
z=[b'cat', b'dog', b'chicken']
first=tf.train.Feature(int64_list=tf.train.Int64List(value=x))
second=tf.train.Feature(bytes_list=tf.train.BytesList(value=z))
dic={'first':first,'second':second}
fea=tf.train.Features(feature=dic)
a=tf.train.Example(features=fea)
print(a)
运行结果:
#转为二进制字符串
b=a.SerializeToString()
b
运行结果
b'\n3\n\x10\n\x05first\x12\x07\x1a\x05\n\x03\x05\x02\x00\n\x1f\n\x06second\x12\x15\n\x13\n\x03cat\n\x03dog\n\x07chicken'
#解码二进制
tf.train.Example.FromString(b)
运行结果:
(和上图print(a)完全相同)
2.保存为TFRecord文件
with tf.io.TFRecordWriter('文本保存路径') as writer:
writer.write(b)
writer.write(b)
writer.write(b)
3读取TFRecord文件
raw_dataset=tf.data.TFRecordDataset('文本保存路径') #读取文件
for raw_record in raw_dataset.take(1): #取前1个,刚才写入了三次
print(raw_record)
example = tf.train.Example() #解析文件
example.ParseFromString(raw_record.numpy())
print(example)
运行结果:
*使用上面的解析方式也是可以的,结果完全相同,解析区别我以后再研究
raw_dataset=tf.data.TFRecordDataset('文本保存路径') #读取文件
for raw_record in raw_dataset.take(1): #取前两个,刚才写入了三次
print(raw_record)
example = tf.train.Example.FromString(raw_record.numpy())#解析文件
print(example)