深层神经网络实现--step by step 入门TensorFlow(二)

本文是TensorFlow深度学习系列的第二部分,主要介绍损失函数和神经网络优化算法。通过Jupyter notebook学习TensorFlow,讲解了交叉熵作为分类问题的损失函数,以及梯度下降、随机梯度下降和批量梯度下降等优化方法。同时提到了指数衰减学习率和正则化在防止过拟合中的作用。
摘要由CSDN通过智能技术生成

深层神经网络实现–step by step 入门TensorFlow(二)

标签:tensorflow


我们将采用Jupyter notebook交互式编程的方式,通过一步步代码的讲解,学习Tensorflow 编程。推荐使用Jupyter notebook作为开发环境按照文中的代码step by step 的学习。

文章列表:
Tensorflow基础知识与神经网络构建–step by step 入门TensorFlow(一)
深层神经网络实现–step by step 入门TensorFlow(二)
MNIST 数字识别和数据持久化–step by step 入门TensorFlow(三)

损失函数

神经网络模型的效果和优化目标是通过损失函数来定义的
如果用一个向量作为分类结果(比如[0,0,0,1,0]识别为第4类),那如何判断输出向量与期望的向量有多接近呢?
交叉熵是最常用的评判标准之一,它刻画了两个概率分布之间的距离。而softmax()函数可以把把输出变为概率分布。
下面是交叉熵的实现,交叉熵与回归一起可以tf.nn.softmax_cross_entropy_with_logits().
其中tf.clip_by_value的展示

import tensorflow as tf
# cross_entropy = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y, 1e-10,1.0)))
#tf.nn.softmax_cross_entropy_with_logits(y,y_)
v = tf.constant([[1.0,2.0,3.0], [4.0,5.0,6.0]])

    print(tf.clip_by_value(v,2.5,4.5).eval())
[[ 2.5  2.5  3. ]
 [ 4.   4.5  4.5]]

求平均的tf.reduce_mean()函数使用方法

with tf.Session() as sess:
    print(tf.reduce_mean(v).eval())
3.5

我们也可以自定义损失函数。tf.greater(v1,v2)遍历向量做大小判断,大于为true,tf.select()根据条件选择取那个队列中的元素。

import tensorflow as tf

v1 = tf.constant([2,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值