tf.gfile.FastGFile||保存读取pb文件

元学习论文总结||小样本学习论文总结

2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

转载:https://www.jianshu.com/p/d8f5357b95b3

Module: tf.gfile


tf.gfile.FastGFile()

读写文件,句柄具有.read()方法,实测凡是使用tf.gfile.FastGFile()的地方换乘open()并不会报错(包括读取普通文件和读取tf模型文件):

'''
本代码也是加载图pb文件并获取节点张量句柄的标准流程,feed_dict输入节点 & sess.run(输出节点)就可以使用模型了
'''
#with tf.gfile.FastGFile(os.path.join(MODEL_DIR, MODEL_FILE), 'rb') as f:  # 使用tf.gfile.FastGFile()函数的方法
with open(os.path.join(MODEL_DIR, MODEL_FILE), 'rb') as f:                 # 使用open()函数的方法
    graph_def = tf.GraphDef()                                              # 生成图
    graph_def.ParseFromString(f.read())                                    # 图加载模型
    bottleneck_tensor,jpeg_data_tensor = tf.import_graph_def(              # 从图上读取张量,同时把图设为默认图
        graph_def,
        return_elements=[BOTTLENECK_TENSOR_NAME,JPEG_DATA_TENSOR_NAME])
 
 
print(gfile.FastGFile(image_path,'rb').read()==open(image_path,'rb').read())
# True

除了read()方法外,常用的方法如下:

read(n=-1)
# 默认返回整个文件,否则返回n bytes of the file
readline()
# 读取文件的下一行,保留末尾的'\n'换行符
readlines()
# 读取文件中所有的文段(line),并存放在列表(list)中
size()
# 返回文件大小
write(file_content)
# Writes file_content to the file. Appends to the end of the file.

参考资料:


Python默认文件读写open()

读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

使用Python内置的 open()函数,传入文件名和标示符:

>>> f = open('/Users/michael/test.txt', 'r')

'r'为标示符,包含:

'r':    默认值,表示从文件读取数据。
'w':    表示要向文件写入数据,并截断以前的内容
'a':    表示要向文件写入数据,添加到当前内容尾部
'r+':   表示对文件进行可读写操作(删除以前的所有数据)
'r+a':  表示对文件可进行读写操作(添加到当前文件尾部)
'b':    表示要读写二进制数据

若要读取二进制文件,比如图片、视频等,使用'rb'模式打开文件即可:

>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节

如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:

>>> f.read()
'Hello, world!'

最后一步是调用 close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:

>>> f.close()

为了防止忘记关闭文件导致内存占用,推荐使用with语句来自动帮调用close()方法:

with open('/path/to/file', 'r') as f:
    print(f.read())

参考资料:


作者:DexterLei
链接:https://www.jianshu.com/p/d8f5357b95b3
来源:简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值