集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

{HCNA-AI TensorFlow编程基础}之数据读取与处理

发布时间: 2018-12-06 15:57:57

6.1 实验介绍

6.1.1 关于本实验

关于 TensorFlow 读取数据,官网共给出了三种方法,如:供给数据,从文件读取数据,预加载数据。本实验主要实现了从文件中读取数据这种方法。

6.1.2 实验目的

理解 TensorFlow 的读取数据的方法。

理解如何利从文件中读取数据。

6.1.3 实验介绍

预加载数据及供给数据适用于数据量很小的情况,当运行大型数据会十分小耗内存,因此最好采用从文件读取数据。TensorFlow 可读取的文件类型包括 csv 文件,二进制文件,TFRecords 文件、图像文件等。本实验读取 csv 文件。

6.1.4 实验步骤

步骤 1  登陆华为云。

步骤 2 点击右上方的控制台。

步骤 3 选择弹性云服务器,网页中会显示该弹性云的可进行的操作,选择远程登录。即登录到弹性云服务器。

步骤 4 输入指令 ll,查看当前目录下的文件。

步骤 5 输入命令:vi dealdatas.py,创建新的 Python 脚本。步骤 6   输入命令 i,进入编辑模式开始编辑,输入脚本内容。步骤 7 输入命令 :wq!,保存并退出。

步骤 8 输入命令 cat dealdatas.py 查看代码。

步骤 9 运行测试。

输入命令:python3 dealdatas.py。




6.2 实验过程

6.2.1 设置编码说明

#coding:utf-8

6.2.2 导入模块

import tensorflow as tf

6.2.3 从文件中读取数据

filename_queue = tf.train.string_input_producer(["tf_read.csv"]) #读取已有数据

reader = tf.TextLineReader()

文件中数据如下,共 30 行数据:

-0.7615.67-0.1215.67-0.4812.52-0.0612.511.339.110.129.1-0.8820.35-0.1820.36-0.253.99-0.013.99-0.8726.25-0.2326.25-1.032.87-0.032.87-0.517.81-0.047.81-1.5714.46-0.2314.46-0.110.02-0.0110.02-0.568.92-0.058.92-1.24.1-0.054.1-0.775.15-0.045.15-0.884.48-0.044.48-2.710.82-0.310.82-1.232.4-0.032.4-0.775.16-0.045.15-0.816.15-0.056.15-0.65.01-0.035-1.254.75-0.064.75-2.537.31-0.197.3-1.1516.39-0.1916.39-1.75.19-0.095.18-0.623.23-0.023.22-0.7417.43-0.1317.41-0.7715.41-0.1215.41047047.010.253.980.013.98-1.19.01-0.19.01-1.023.87-0.043.87




6.2.4 获取队列值

#获取队列值

key, value = reader.read(filename_queue) # key 返回的是读取文件和行数信息

# value 是按行读取到的原始字符串,送到下面的 decoder 去解析

#key 是文件信息和当前读取的行数,value 是原始字符串。

record_defaults = [[1.], [1.], [1.], [1.]]# 这里的数据类型决定了读取的数据类型,而且必须是 list 形式

col1, col2, col3, col4 = tf.decode_csv(value, record_defaults=record_defaults)#

解析出的每一个属性都是 rank 为 0 的标量


features = tf.stack([col1, col2, col3])

6.2.5 初始化

init_op = tf.global_variables_initializer() local_init_op = tf.local_variables_initializer()

6.2.6 启动会话

with tf.Session() as sess:

#启动 session,执行初始化操作

sess.run(init_op) sess.run(local_init_op)

# Start populating the filename queue.开启一个协调器coord = tf.train.Coordinator()

#使用 start_queue_runners 启动队列填充

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

#

try:

for i in range(30):

example, label = sess.run([features, col4]) print(example)

# print(label)

except tf.errors.OutOfRangeError: print('Done !!!')

#如果读取到文件队列末尾会抛出此异常

finally: #协调器 coord 发出所有线程中指信号

coord.request_stop()

print('all threads are asked to stop!') coord.join(threads)

print('all threads are stopped!')


#coord.request_stop()来发出终止所有线程的命令,使用 coord.join(threads)把线程加入主线程,等待 threads 结束。




6.2.7 实验结果

[-0.76 15.67 -0.12]

[-0.48 12.52 -0.06]

[1.33 9.11 0.12]

[-0.88 20.35 -0.18]

[-0.25  3.99 -0.01]

[-0.87 26.25 -0.23]

[-1.03  2.87 -0.03]

[-0.51  7.81 -0.04]

[-1.57 14.46 -0.23]

[-1.000e-01 1.002e+01 -1.000e-02] [-0.56 8.92 -0.05]

[-1.2 4.1 -0.05]

[-0.77  5.15 -0.04]

[-0.88  4.48 -0.04]

[-2.7  10.82 -0.3 ]

[-1.23  2.4 -0.03]

[-0.77  5.16 -0.04]

[-0.81  6.15 -0.05]

[-0.6 5.01 -0.03]

[-1.25  4.75 -0.06]

[-2.53  7.31 -0.19]

[-1.15 16.39 -0.19]

[-1.7 5.19 -0.09]

[-0.62  3.23 -0.02]

[-0.74 17.43 -0.13]

[-0.77 15.41 -0.12]

[ 0. 47. 0.]

[0.25 3.98 0.01]

[-1.1 9.01 -0.1 ]

[-1.02  3.87 -0.04]



6.3 实例描述

本实验主要是根据不同的文件格式选取不同的函数进行操作,从 CSV 文件中读取数据, 需要使用 TextLineReader 和 decode_csv 操作。通过对文件的操作,完成数据的读取与处理。

上一篇: {HTML5}DOM 和 CSS 操作-第一节-DOM 简介

下一篇: {Springboot}微服务介绍

十八年老品牌
微信咨询:gz_togogo 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!