tensorflow——3

  数据的存储和读取:

        今天学习了数据的读取和存储,废话不多说直接上代码

      

      存储:    

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学习结束。

原文地址:https://www.cnblogs.com/zhangxinyue/p/14438938.html