tensorflow学习笔记整合

在慕课网上跟着学习了一段时间的《TensorFlow学习笔记》,将笔记整合如下:

参考资料–慕课网:https://www.icourse163.org/learn/PKU-1002536002?tid=1002700003#/learn/content

基于tensorflow的神经网络:

用张量表示数据,
用计算图搭建网络,
会话执行计算图,
优化参数得到模型。

神经网络的实现过程:

  1. 准备数据集,提取特征,喂给神经网络(feed_dict)
  2. 搭建神经网络,从输入到输出(搭建计算图,会话执行)(前向传播)
  3. 大量特征数据喂给神经网络,迭代优化参数(反向传播)
  4. 使用训练好的模型。

神经网络的优化

  1. 激活函数:reLu,sigmoid,tanh
  2. 损失函数(Loss):(y_与y之间的差距。)均方误差,交叉熵自定义,交叉熵,
  3. softmax函数:
  4. 学习率的控制:指数衰减学习率,(学习率初始设置为0.1,学习率衰减率为0.99,1轮后更新学习率)
  5. 滑动平均:(一段时间内的w,b的平均值)
  6. 正则化(为了减少过拟合)
    使用以上方法:

    神经网络模型的保存

    神经网络模型的加载

    评估


    断点续训:
    进行应用(applicatio):

    优化总结

    前向函数:搭建神经网络,用到了 参数(w)正则化。
    关于正则化:
    1
    2
    3
    4
    5
    6
    W1 = tf.get_variable('weights_1',shape,tf.random_normal_initializer()) # 创建权重矩阵W1 tf.add_to_collection('losses',regularizer(W1)) # 将权重矩阵W1对应的正则项加入集合losses W2 = tf.get_variable('weights_2',shape,tf.random_normal_initializer()) # 创建权重矩阵W2 tf.add_to_collection('losses',regularizer(W2)) # 将权重矩阵W2对应的正则项加入集合losses ... Wn = tf.get_variable('weights_n',shape,tf.random_normal_initializer()) # 创建权重矩阵Wn tf.add_to_collection('losses',regularizer(Wn)) # 将权重矩阵Wn对应的正则项加入集合losses losses_collection = tf.get_collection('losses') # 以列表的形式获取集合losses中的值,每一个值都作为列表中的一个元素 loss = tf.add_n(losses_collection,name='loss') # 计算列表中所有元素之和,得到的结果就是正则项的值
    #使用时
    def get_weight(shape,regularizer):
    w = tf.Variable(tf.truncated_normal(shape,stddev=0.1))
    if regularizer != None: tf.add_to_collection('losses',tf.contrib.layers.12_regularizer(regularizer)(w))
    return(w)

反向函数:引入前向函数,Loss,用到了正则化,指数衰减,滑动平均。
测试模型:测试准确性和泛化性。tf.Graph()复现计算图

文章目录
  1. 1. 基于tensorflow的神经网络:
  2. 2. 神经网络的优化
  3. 3. 神经网络模型的保存
  4. 4. 神经网络模型的加载
  5. 5. 评估
  • 优化总结
  • ,