zoukankan      html  css  js  c++  java
  • 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学习结束。

  • 相关阅读:
    java 中类的加载顺序
    jdbc 连接数据库、批量操作、事务(oracle、mysql)
    一个空格引发的血案啊!
    Servlet 的生命周期与线程安全
    Java 方法的重写与重载
    java 序列化
    equals()与hashcode()的理解
    成功安装cadence SPB16.0
    stack implement C++
    windows 7 设置环境变量的方法
  • 原文地址:https://www.cnblogs.com/zhangxinyue/p/14438938.html
Copyright © 2011-2022 走看看