TensorFlow入门(十四、数据读取机制(1))

TensorFlow的数据读取方式

TensorFlow的数据读取方式共有三种,分别是:

        ①预加载数据(Preloaded data)

                预加载数据的方式,其实就是静态图(Graph)的模式。即将数据直接内嵌到Graph中,再把Graph传入Session中运行。

示例代码如下:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()a = tf.constant([[5,2]])
b = tf.constant([[1],[3]])
c = tf.matmul(a,b)init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)print(sess.run(c))

        ②先产生数据,再喂数据(Feeding)

                先生产数据,通过feed_dict喂数据(Feeding)的方式。

示例代码如下:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
c = tf.add(a,b)a1 = 6
b1 = 8init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)print(sess.run(c,feed_dict = {a:a1,b:b1}))

        ③直接从文件中读取(Reading from file)

                前两种方法虽然方便,但无法满足大型数据集训练时对速度要高效、内存消耗要小的要求。因此,TensorFlow提供了第三种方式,即在静态图(Graph)中定义好文件读取的方法,TensorFlow自动从文件(也就是文本或图片)中读取数据,然后解码成可用的样本集。

                从文件读取数据的流程主要分为四个步骤:

                        ①创建文件,准备数据

                        ②创建文件名队列,将已准备的文件,按照随机顺序放入队列

                        ③创建Reader,读取文件

                        ④将读取的内容解码后输出

示例代码如下:

        生成文件

import csvfile_name = "file.csv"
with open(file_name,"w",newline = "") as csvfile:writer = csv.writer(csvfile, dialect = "excel")with open("data1.txt","r") as file_txt:for line in file_txt:line_datas = str(line).strip("\n").split(",")print(line_datas)writer.writerow(line_datas)

data1.txt的存放位置如下图,代码执行后会生成file.csv文件

        读取文件

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()#要保存后csv格式的文件名
file_name_string = "file.csv"
filename_queue = tf.train.string_input_producer([file_name_string])
#定义reader,每次一行
reader = tf.TextLineReader()
key,value = reader.read(filename_queue)
#定义decoder
var1,var2 = tf.decode_csv(value,record_defaults = [[1.0],[1.0]])#运行图
init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)sess.run(tf.local_variables_initializer())#创建一个协调器,管理线程coord = tf.train.Coordinator()#启动QueueRunner,此时文件名队列已经进队threads = tf.train.start_queue_runners(coord = coord)for row in enumerate(open(file_name_string,"r")):e_val,l_val = sess.run([var1,var2])print(e_val,l_val)coord.request_stop()coord.join(threads)

读取图片

示例代码如下:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()import os
import matplotlib.pyplot as pltfile_name = os.listdir("./image")
file_list = [os.path.join("./image",file) for file in file_name]#创建输入队列,默认顺序打乱
filename_queue = tf.train.string_input_producer(file_list,shuffle = True,num_epochs = 2)
key,image = tf.WholeFileReader().read(filename_queue)
#解码成tf中图像格式
image = tf.image.decode_jpeg(image)with tf.Session() as sess:sess.run(tf.local_variables_initializer())#创建一个协调器,管理线程coord = tf.train.Coordinator()threads = tf.train.start_queue_runners(coord = coord)for _ in file_list:#执行img = image.eval()plt.figure(1)plt.imshow(img)plt.show()coord.request_stop()coord.join(threads)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/128771.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE4游戏客户端开发进阶学习指南

前言 两年多前写过一篇入门指南,教大家在短时间内快速入门UE4的使用,在知乎被很多人收藏了。如今鸡佬使用UE快三年了,是时候更新一下进阶版本的学习指南。本文对于读者的要求: 有一定的C基础已经入门UE,能够用蓝图和…

这道面试题工作中经常碰到,但 99% 的程序员都答不上来

小时候都被问过一个脑筋急转弯,把大象放进冰箱有几个步骤?我们一开始都会抓耳挠腮,去想着该如何把大象塞进冰箱。最终揭晓的答案却根本不关心具体的操作方法,只是提供了 3 个步骤组成的流程,「把冰箱打开,把…

湖南互联网医院|湖南互联网医院牌照办理流程及材料

互联网医牌照,一个让医疗行业焕发数字化新生的通行证。随着时代的进步和技术的发展,互联网已经深入各个行业,医疗领域也不例外。而互联网医牌照的办理流程、内容以及所需材料,则是诸多医疗机构所关注的核心内容。 第一种是实体医…

2023年台州市第三届网络安全技能大赛(MISC)—Black Mamba

前言:当时比赛没有做出来现在来复现一下 就当记录一下(这个思路没想到) Black Mamba: 一张图片 常规得分离,属性,LSB,盲水印等都尝试过 无果! 考点:异或解密&#xff0…

GitLab平台安装中经典安装语句含义解析

yum -y install policycoreutils openssh-server openssh-clients postfix 这是一个Linux命令,用于使用YUM包管理器安装指定的软件包。下面是对这个命令各部分的解释: yum:这是一个Linux命令行工具,用于管理RPM(Red …

Linux 磁盘管理+实例

目录 一、文件系统 二、添加磁盘 三、查看磁盘信息(块设备) 四、分区 1、格式 1)MBR分区 2)GPT分区 2、管理分区 1)使用fdisk 2)使用gdisk 3)使用parted a.交互式 b.非交互式 3、…

flutter出现entrypoint isn‘t within the current project

更新了android studio版本,打开一个老的flutter项目时,无法运行,打开configuration配置,提示错误entrypoint isn’t within the current project. 解决办法 1、删掉目录.idea, .gradle, .dart_tool退出重新打开项目 2、选中根目…

WorkPlus即时通讯app打通业务与生态,实现高效管理与协同

作为移动应用管理领域的领先品牌,WorkPlus通过其创新性的解决方案,成为企业级应用管理平台中的佼佼者。WorkPlus的使命是连接业务和生态,为企业提供一体化的移动应用管理解决方案,从而助力企业实现数字化转型和有效的业务运营。 …

centos7终端无图形界面安装tbb

1、官网下载tbb: https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#onetbb 2、终端执行: ./l_tbb_oneapi_p_2021.10.0.49543_offline.sh -a --cli3、cd /opt/intel/oneapi 4、source setvars.sh …

符合 EN55022B 规格、LTM4613EY、LTM4613MPV直流µModule稳压器【RG500Q 5G Sub-6 GHz 模块】

一、LTM4613,符合 EN55022B 规格的 36VIN、15VOUT、8A、DC/DC Module 稳压器 (简介)LTM4613 是一款完整、超低噪声、8A 开关模式 DC/DC 电源。封装中内置了开关控制器、功率 FET、电感器和所有的支持元件。LTM4613 的工作输入电压范围为 5V 至…

毫米波汽车雷达测试应用指南

汽车毫米波雷达测试背景 车载毫米波雷达通过天线向外发射毫米波,接收目标反射信号,经后方处理后快速准确地获取汽车车身周围的物理环境信息(如汽车与其他物体之间的相对距离、相对速度、角度、运动方向等),然后根据所…

UE4 Unlua 初使用小记

function M:Construct()print(Hello World)print(self.Va)local mySubsystem UE4.UHMSGameInstanceSubsystemUE4.UKismetSystemLibrary.PrintString(self,"Get Click Msg From UnLua ")end unlua中tick不能调用的问题: 把该类的Event Tick为灰色显示的删…