数据的存储和读取:
今天学习了数据的读取和存储,废话不多说直接上代码
存储:
import tensorflow as tf v1 = tf.Variable(tf.random_normal([1,2]),name="v1") v2 = tf.Variable(tf.random_normal([2,3]),name="v2") init_op = tf.global_variables_initializer() saver = tf.train.Saver() with tf.Session() as sess: sess.run(init_op) print("v1:",sess.run(v1)) print("v2:",sess.run(v2)) saver_path = saver.save(sess,"E:Anaconda4.2.0/tensorflow_workspace/model.ckpt") print("Model saved in file:",saver_path)
读取:
import tensorflow as tf v1 = tf.Variable(tf.random_normal([1,2]),name="v1") v2 = tf.Variable(tf.random_normal([2,3]),name="v2") saver = tf.train.Saver() with tf.Session() as sess: saver.restore(sess,"E:Anaconda4.2.0/tensorflow_workspace/model.ckpt") print("v1:",sess.run(v1)) print("v2:",sess.run(v2)) print("Model restored")
但是我遇到了一个问题,就是刚开始生成保存的数据是0.16多少多少,读取的时候第一次执行代码读出来不一样,但是第二次再执行一次之后就和之前保存的一样了,不知道是为什么,百度半天无果,有懂的大佬欢迎给我解答一下,拜谢了! ♪(・ω・)ノ
另外记录一些save的小函数:save_step=1:每次训练结果都保存;
saver = tf.train.Saver(max_to_keep=3) :只保存3组数据,例如第1~3次训练结果保存之后,在保存第四次的时候会删除第一次的结果,以此类推。
VGG实例:
读取数据:data = scipy.io.loadmat(文件路径)
找到Notebook的路径:cwd = os.getcwd()
写路径格式:VGG_PATH = cwd + " /data/文件名"
找出均值:
VGG:
conv层:进行主体的特征提取。
rule层:图像黑白的。
随着程序的进行,电脑越来越“认识”识别的图的特征
使用RNN处理Mnist数据集:因为是28×28像素的,所以可以看成把它分成28份,每一份都分由RNN处理,标号1~28,1处理好的数据发给2,2发给3,以此类推,在接受本身的输入,最后在28号做出最后的数据,处理工程都在RNN中完成。放个图更直观一点:
生成验证码例子:
代码:
import tensorflow as tf from captcha.image import ImageCaptcha import numpy as np import matplotlib.pyplot as plt from PIL import Image import random number = ['0','1','2','3','4','5','6','7','8','9'] alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4): captcha_text = [] for i in range(captcha_size): c = random.choice(char_set) captcha_text.append(c) return captcha_text def gen_captcha_text_and_image(): image = ImageCaptcha() captcha_text = random_captcha_text() captcha_text = ''.join(captcha_text) captcha = image.generate(captcha_text) captcha_image = Image.open(captcha) captcha_image = np.array(captcha_image) return captcha_text,captcha_image if __name__ == '__main__': text,image = gen_captcha_text_and_image() f = plt.figure() ax = f.add_subplot(111) ax.text(0.1,0.9,text,ha='center',va='center',transform=ax.transAxes) plt.imshow(image) plt.show()
最后两节就是代码讲解,和之前的深度学习类似,分了三层,最后是验证码的预测实例。至此tensorflow学习结束。