tenorflow学习--21个项目入门深度学习

本文详细介绍了TensorFlow的计算流程,包括加载数据(预加载、占位符、文件读取)、定义变量和占位符、优化指标(损失函数)、初始化变量和会话、模型训练、模型评估及模型保存。数据增强如平移、旋转、翻转等能提高模型泛化能力。通过实例解析了如何在TensorFlow中进行深度学习操作。
摘要由CSDN通过智能技术生成

tensorflow计算流程

定义计算图(包括变量和占位符表示的数据),使用会话执行定义好的运算图,会话用run()函数传入最终被计算的节点,tensorflow会自动计算剩下所依赖的节点(每一个节点代表一个操作,属性用张量来表示),使用完会话后,需要关闭会话,避免造成资源泄露。

一、加载数据

Tensorflow 数据读取有三种方式:

  • Preloaded data: 预加载数据
  • Feeding: 用占位符表示数据,启动session时再把数据喂给后端
  • Reading from file: 从文件中直接读取

优缺点
1、预加载:将数据直接内嵌到Graph中,再把Graph传入Session中运行。当数据量比较大时,Graph的传输会遇到效率问题。
2、用占位符替代数据,待运行的时候填充数据。
3、前两种方法很方便,但是遇到大型数据的时候就会很吃力,即使是Feeding,中间环节的增加也是不小的开销,比如数据类型转换等等。最优的方案就是在Graph定义好文件读取的方法,让TF自己去从文件中读取数据,并解码成可使用的样本集。

1、从文件中直接读取

1先创建文件队列

filename_queue = tf.train.string_input_producer(filenames)

2再创建内存队列

threads = tf.train.start_queue_runners(sess=sess)

文件队列,通过tf.train.string_input_producer()函数来创建,文件名队列不包含文件的具体内容,只是在队列中记录所有的文件名,所以可以在这个函数中对文件设置多个epoch,并对其进行shuffle。这个函数只是创建一个文件队列,并指定入队的操作由几个线程同时完成。真正的读取文件名内容是从执行了tf.train.start_queue_runners()开始的,start_queue_runners返回一个op,一旦执行这个op,文件名队列就开始被填充了

2、先产生数据,再把数据喂给后端

流程:打开一个session --> 喂数据 --> 计算y (先定义图,数据用占位符表示,数据在调用session时

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值