如题都是扯淡的,倒是在第一次看tensorflow实战这本书的时候,没有特别的在意代码的实现,以至于看完后觉得很有道理,但是让自己来编写一个深度神经网络时,不知道从合作下手,因为之前都是在看(或者誊写)书本上的代码,觉得很有道理,然后就没有然后了。
这次重温这本书,过程中的关键代码,都做了闭卷自己来写一遍、一遍又一遍(当然是换一点自己的想法后来写),慢慢的也就了解到了大致的tensorflow的最小化模型:
- 定义网络结构:包含输入输出定义(placeholder),参数定义啊(如weight变量、bias变量等等),中间层计算操作(如逐层的矩阵相乘等等);
- 定义损失函数:(分类问题和回归问题的常用损失函数啊,或者针对具体的问题进行的特殊定义等)
- 定义优化方法:(包含学习步骤啊,优化方法啊等等)
- 准备数据:(有些用的数据集读入,或者用随机函数进行生成组合)
- 会话构建
- 初始化所有的变量
- 对数据进行分批次的训练,不断更新变量参数
- 存下来相关的图结构和变量变化过程
虽然到目前为此依然没有写出一个标准数据集上的经典算法,但是已经把入门的小小方法做了多次变动实现,如下,以作纪念,主要参考《Tensorflow+实战Google深度学习框架》:
# -*-coding:utf-8 -*-
import tensorflow as tf
from numpy.random import RandomState
# prepare the network
batch_size = 8
x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")
y_ = tf.placeholder(tf.float32, shape=(None, 1), name="y-input")
w = tf.Variable(tf.ra