深度学习从入门到放弃之3---数据篇(队列的保存及读取)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/LEEANG121/article/details/102559400

深度学习从入门到放弃之3---数据篇(数据的保存及读取)

数据的保存

在将一个神经网络训练好以后,需要将其中的权重、偏值保存下来,从而在下一次使用神经网络时不必训练便可以直接加载参数使用,下面是一个以数据保存和提取为主的程序(这里要注意的是,保存数据仅保存权重和变量,并不保存框架)保存数据的作用是保存权重可以方便模型下一次计算:

import tensorflow as tf
Weights = tf.Variable([[1,2,3],[3,4,5]],dtype=tf.float32,name="Weights")
baises = tf.Variable([[1,32,3]],dtype=tf.float32,name="baises")
saver = tf.train.Saver()#保存数据和提取数据都需要先创建一个对象,才能使用
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    save_path = saver.save(sess, "C:/Users/52566/.jupyter/saver_1")#这里斜杠的方向不能反,否则会报错
save_path = saver.save(sess, "C:/Users/52566/.jupyter/saver_1")
save_path: C:/Users/52566/.jupyter/saver_1这是存储路径

在这里插入图片描述

数据的读取

Tensorflow支持多种数据的读取方式,最简单的数据输入和读取方式就是对常量的读取,使用placeholder(我会在其他的笔记中介绍该函数,这其实是一个占位符)。但是这种数据读取方式需要手动传递array类型的数据。之后利用feed函数自动在内部构建出一个迭代器对数据进行迭代。

本笔记介绍通过队列的形式对数据进行读取的方式。这种数据的读取方式节省了大量的冗余操作,数据的读取只需要和队列打交道,而不需要和数据底层的读取方式以及数据的类型打交道。从而可以避免数据的预处理等一些耗费大量时间的工作。

通过FIFOQeue函数,首先创建一个先进先出的有序队列,主要用于对数据输入顺序有要求的神经网络模型,例如时序分析等。另外一种队列的创建方法是RandomShuffleQueue函数,用于无序的读取和输出书籍样本。

在这里插入图片描述

总结

队列中的数据读取如下:
1,从磁盘读取数据的名称与路径;
2,将文件名依次插入队尾;
3,从队列头部读取文件名并读取数据;
4,Decoder将读取的数据解码;
5,将数据输入样本队列供后续处理使用。

猜你喜欢

转载自blog.csdn.net/LEEANG121/article/details/102559400
今日推荐