深度学习Tensorflow工程化项目实战 读书笔记

文章目录

  • 深度学习Tensorflow工程化项目实战
    • 第一章 学习准备
    • 第二章 开发环境
    • 第三章 简单的AI实例的调用
        • 实例3.1:用AI模型识别图像是桌子、猫、狗,还是其他
    • 第四章 用TensorFlow制作自己的数据集
      • 4.1TensorFlow的数据集格式
        • 实例4.1:将模拟数据制作成内存对象数据集

深度学习Tensorflow工程化项目实战

第一章 学习准备

本笔记中代码的环境为python3.6,Tensorflow1.15,主要对于书中的工程实例进行调试和代码注解



第二章 开发环境

开发环境为:ubuntu下 pycharm+Anaconda3


第三章 简单的AI实例的调用

实例3.1:用AI模型识别图像是桌子、猫、狗,还是其他



第四章 用TensorFlow制作自己的数据集

4.1TensorFlow的数据集格式

Tensorflow有含有以下四种数据集格式:
1,内存对象数据集:
直接用字典类型feed_dict,通过tf的feed注入模式向模型输入数据。该格式适用于少量的数据输入时;
2,TFRecord数据集:
这是tensorflow官方定义的一种数据类型,用队列式管道(tfRecord)向模型输入数据。该数据类型在网络加载时效率更突出,适用于大量数据的情况;
3,Dataset数据集:
通过tensorflow官方的api,性能更高的输入管道(tf.data),该方法适用于tf1.4及之后的版本;
4,tf.keras接口数据集:为keras封装的数据接口。

实例4.1:将模拟数据制作成内存对象数据集

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

#在内存中生成模拟数据
def GenerateData(batchsize = 100):
    train_X = np.linspace(-1, 1, batchsize)   #train_X为-1到1之间连续的100个浮点数,间隔为0.02
    train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了0.3权重的随机噪声
    yield train_X, train_Y       #以生成器的方式返回

#定义网络模型结构部分,这里只有占位符张量,等待模型run时在进行feed
Xinput = tf.placeholder("float",(None))  #定义两个占位符,用来接收参数
Yinput = tf.placeholder("float",(None))

#建立会话,获取并输出数据
training_epochs = 20  # 定义需要迭代的次数,即将全部数据集遍历的次数
with tf.Session() as sess:  # 建立会话(session),使用with方法,无需sess.close
    for epoch in range(training_epochs): #迭代数据集20遍
        for x, y in GenerateData(): #通过for循环打印所有的点
            xv,yv = sess.run([Xinput,Yinput], feed_dict={
     Xinput: x, Yinput: y})#通过静态图注入的方式,传入数据

            print(epoch,"| x.shape:",np.shape(xv),"| x[:3]:",xv[:3])
            print(epoch,"| y.shape:",np.shape(yv),"| y[:3]:",yv[:3])
     
    
#显示模拟数据点
train_data =list(GenerateData())[0]#将模拟数据转为列表的形式
plt.plot(train_data[0], train_data[1], 'ro', label='Original data')
plt.legend()
plt.show()

这是生成的数据图表:
深度学习Tensorflow工程化项目实战 读书笔记_第1张图片

你可能感兴趣的:(深度学习Tensorflow工程化项目实战 读书笔记)