一、功能和目的

tf.gfile模块定义在tensorflow/python/platform/gfile.py,但其源代码实现主要位于tensorflow/tensorflow/python/lib/io/file_io.py。

它具有如下特点:

  • tf.gfile是没有线程锁的文件IO操作库
  • 它提供和Python File类似的功能
  • Tensorflow“大本营”是C++编写的,Python只是提供了API接口,Tensorflow C++版提供了一套文件IO接口,Python化一下即得tf.gfile
  • 它支持云存储,可以像操作本地文件一样操作云
  • 速度快,比Python自带的文件操作快

二、全部tf.gfile API

tf.gfile写得非常简单,源码很短,如果想彻底掌握,可以去阅读源码。我们很容易就能够一睹全貌。

tf.gfile主要包括2个类和12个函数。两个类为:

  • class FastGFile
    tf.gfile.GFile(filename, mode)
    获取文本操作句柄,类似于python提供的文本操作open()函数,filename是要打开的文件名,mode是以何种方式去读写,将会返回一个文本操作句柄。
    tf.gfile.Open()是该接口的同名,可任意使用其中一个!
  • class GFile
    tf.gfile.FastGFile(filename, mode)
    该函数与tf.gfile.GFile的差别仅仅在于“无阻塞”,即该函数会无阻赛以较快的方式获取文本操作句柄。

下面将分别介绍12个gfile 函数。

1、tf.gfile.Copy(oldpath, newpath, overwrite=False)

拷贝源文件并创建目标文件,无返回,其形参说明如下:

  • oldpath:带路径名字的拷贝源文件;
  • newpath:带路径名字的拷贝目标文件;
  • overwrite:目标文件已经存在时是否要覆盖,默认为false,如果目标文件已经存在则会报错

2、tf.gfile.MkDir(dirname)

创建一个目录,dirname为目录名字,无返回。

3、tf.gfile.Remove(filename)

删除文件,filename即文件名,无返回。

4、tf.gfile.DeleteRecursively(dirname)

递归删除所有目录及其文件,dirname即目录名,无返回。

5、tf.gfile.Exists(filename)

判断目录或文件是否存在,filename可为目录路径或带文件名的路径,有该目录则返回True,否则False。

6、tf.gfile.Glob(filename)

查找匹配pattern的文件并以列表的形式返回,filename可以是一个具体的文件名,也可以是包含通配符的正则表达式。

7、tf.gfile.IsDirectory(dirname)

判断所给目录是否存在,如果存在则返回True,否则返回False,dirname是目录名。

8、tf.gfile.ListDirectory(dirname)

罗列dirname目录下的所有文件并以列表形式返回,dirname必须是目录名。

9、tf.gfile.MakeDirs(dirname)

以递归方式建立父目录及其子目录,如果目录已存在且是可覆盖则会创建成功,否则报错,无返回。

10、tf.gfile.Rename(oldname, newname, overwrite=False)

重命名或移动一个文件或目录,无返回,其形参说明如下:

  • oldname:旧目录或旧文件;
  • newname:新目录或新文件;
  • overwrite:默认为false,如果新目录或新文件已经存在则会报错,否则重命名或移动成功。

11、tf.gfile.Stat(filename)

返回目录的统计数据,该函数会返回FileStatistics数据结构,可以用dir(tf.gfile.Stat(filename))获取返回数据的属性。

12、tf.gfile.Walk(top, in_order=True)

递归获取目录信息生成器,top是目录名,in_order默认为True指示顺序遍历目录,否则将无序遍历,每次生成返回如下格式信息(dirname, [subdirname, subdirname, ...], [filename, filename, ...])。

参考资料

https://blog.csdn.net/a373595475/article/details/79693430?utm_source=copy

tf.gfile的更多相关文章

  1. tensorflow API _ 6 (tf.gfile)

    一.gfile模块是什么 tf.gfile模块的主要角色是:1.提供一个接近Python文件对象的API,以及2.提供基于TensorFlow C ++ FileSystem API的实现. C ++ ...

  2. 转载:tf.gfile的用法

    https://blog.csdn.net/a373595475/article/details/79693430

  3. TF Boys (TensorFlow Boys ) 养成记(五)

    有了数据,有了网络结构,下面我们就来写 cifar10 的代码. 首先处理输入,在 /home/your_name/TensorFlow/cifar10/ 下建立 cifar10_input.py,输 ...

  4. TF Boys (TensorFlow Boys ) 养成记(二)

    TensorFlow 的 How-Tos,讲解了这么几点: 1. 变量:创建,初始化,保存,加载,共享: 2. TensorFlow 的可视化学习,(r0.12版本后,加入了Embedding Vis ...

  5. 深度学习原理与框架-Tfrecord数据集的读取与训练(代码) 1.tf.train.batch(获取batch图片) 2.tf.image.resize_image_with_crop_or_pad(图片压缩) 3.tf.train.per_image_stand..(图片标准化) 4.tf.train.string_input_producer(字符串入队列) 5.tf.TFRecord(读

    1.tf.train.batch(image, batch_size=batch_size, num_threads=1) # 获取一个batch的数据 参数说明:image表示输入图片,batch_ ...

  6. 深度学习原理与框架-Tfrecord数据集的制作 1.tf.train.Examples(数据转换为二进制) 3.tf.image.encode_jpeg(解码图片加码成jpeg) 4.tf.train.Coordinator(构建多线程通道) 5.threading.Thread(建立单线程) 6.tf.python_io.TFR(TFR读入器)

    1. 配套使用: tf.train.Examples将数据转换为二进制,提升IO效率和方便管理 对于int类型 : tf.train.Examples(features=tf.train.Featur ...

  7. tensorflow中的gfile模块(转)

    简介 这些函数和python中的os模块非常的相似,一般都可以用os模块代替吧 gfile API介绍 下面将分别介绍每一个gfile API! 2-1)tf.gfile.Copy(oldpath, ...

  8. 机器学习与Tensorflow(7)——tf.train.Saver()、inception-v3的应用

    1. tf.train.Saver() tf.train.Saver()是一个类,提供了变量.模型(也称图Graph)的保存和恢复模型方法. TensorFlow是通过构造Graph的方式进行深度学习 ...

  9. tensorflow 导入gfile模型文件

    with tf.gfile.GFile(os.path.join(self.model_dir, 'ner_model.pb'), 'rb') as f: graph_def = self.tf.Gr ...

随机推荐

  1. iOS开发-UIActivityIndicatorView简单使用

    软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorVie ...

  2. 搭建MySQL高可用负载均衡集群(转)

    阅读目录 1.简介 2.基本环境 3.配置MySQL主主复制 4.中间件简述 4.1.Haproxy介绍 4.2.keepalived介绍 5.中间件的安装与配置(haproxy.keepalived ...

  3. jQuery对象初始化的多种传参数形式

    jQuery对象初始化的传参方式包括:1.$(DOMElement)2.$('<h1>...</h1>'), $('#id'), $('.class') 传入字符串, 这是最常 ...

  4. C++ 学习路线和看法

    C++ 学习路线和看法 原文地址:http://shundacao.blog.163.com/blog/static/1340404812010101982751101/     C++大体分为C++ ...

  5. ASP.NET压力测试

    本文导读:对于直接面对互联网用户的WEB应用,在开发设计的时候必须格外小心,因为谁也不知道在单位时间内WEB程序访问和运行的速度.所以,在程序设计完成以后,最后针对程序进行一些严格的甚至是苛刻的测试, ...

  6. Docker: 如何将node.js的项目部署到docker的swarm上面去

    前提条件: Docker创建虚机和swarm 如何用Docker建立一个Node.js的开发环境 正文: 将如何用Docker建立一个Node.js的开发环境文中创建的nodehello image发 ...

  7. js文件流下载通用方法

    通常我们会用到文件流下载文件,下面给大家一个通用的文件流下载的js /* *下载文件 * options:{ * url:'', //下载地址 * isNewWinOpen:false,是否新窗口打开 ...

  8. 【树形DP】 HDU 2412 Party at Hali-Bula

    给出根节点(BOSS) 然后还有N-1个边  A B 由B指向A (B为A 的上司) 每次仅仅能选择这个关系中的当中一个 求最多选几个点 而且输出是不是唯一的 重点推断是否唯一: 1.若下属不去和去都 ...

  9. Android学习之Android studio TraceView和lint工具的使用具体解释

    上次讲述了一下Android studio Terminal的使用配置,今天又学习了一下关于Traceview和lint工具的使用. 首先来讲lint吧: Android lint工具是Android ...

  10. 利用RTMFP开发P2P应用

    利用RTMFP开发P2P应用 flash10使用RTMFP 开发点对点P2P应用 通过Stratus 服务器在Flash Player中使用RTMFP 开发 点对点应用 Adobe Flash Pla ...