深度学习进阶:多分类与TensorFlow(二)

简介: 深度学习进阶:多分类与TensorFlow(二)

2.1.3.4 Mnist数据获取API



TensorFlow框架自带了获取这个数据集的接口,所以不需要自行读取。


  • from tensorflow.examples.tutorials.mnist import input_data
  • mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)
  • mnist.train.next_batch(100)(提供批量获取功能)
  • mnist.train.images、labels
  • mnist.test.images、labels


2.1.3.5 网络设计



我们采取两个层,除了输入层之外。第一个隐层中64个神经元,最后一个输出层(全连接层)我们必须设置10个神经元的神经网络。


20200517100241349.png


2.1.3.6 全连接层计算



  • tf.matmul(a, b,name=None)+bias
  • return:全连接结果,供交叉损失运算


  • tf.train.GradientDescentOptimizer(learning_rate)
  • 梯度下降
  • learning_rate:学习率
  • method:
  • minimize(loss):最小优化损失


2.1.3.7 前期确定事情与流程



确定网络结构以及形状


  • 第一层参数:输入:x [None, 784] 权重:[784, 64] 偏置[64],输出[None, 64]
  • 第二层参数:输入:[None, 64] 权重:[64, 10] 偏置[10],输出[None, 10]


  • 流程:
  • 获取数据
  • 前向传播:网络结构定义
  • 损失计算
  • 反向传播:梯度下降优化


  • 功能完善
  • 准确率计算
  • 添加Tensorboard观察变量、损失变化
  • 训练模型保存、模型存在加载模型进行预测


2.1.3.8 主网络搭建流程


  • 获取数据


mnist = input_data.read_data_sets("./data/mnist/input_data/", one_hot=True)


定义数据占位符,Mnist数据实时提供给placeholder


# 1、准备数据
# x [None, 784] y_true [None. 10]
with tf.variable_scope("mnist_data"):
    x = tf.placeholder(tf.float32, [None, 784])
    y_true = tf.placeholder(tf.int32, [None, 10])


两层神经元网络结果计算


# 2、全连接层神经网络计算
# 类别:10个类别  全连接层:10个神经元
    # 参数w: [784, 10]   b:[10]
    # 全连接层神经网络的计算公式:[None, 784] * [784, 10] + [10] = [None, 10]
    # 随机初始化权重偏置参数,这些是优化的参数,必须使用变量op去定义
    # 要进行全连接层的矩阵运算 [None, 784]*[784, 64] + [64] = [None,64]
    # [None, 64]*[64, 10] + [10] = [None,10]
    with tf.variable_scope("fc_model"):
         # 第一层:随机初始化权重和偏置参数,要使用变量OP 定义
        weight_1 = tf.Variable(tf.random_normal([784, 64], mean=0.0, stddev=1.0),
                             name="weightes_1")
        bias_1 = tf.Variable(tf.random_normal([64], mean=0.0, stddev=1.0),
                           name='biases_1')
        # 第二层:随机初始化权重和偏置参数,要使用变量OP 定义
        weight_2 = tf.Variable(tf.random_normal([64, 10], mean=0.0, stddev=1.0),
                             name="weightes_2")
        bias_2 = tf.Variable(tf.random_normal([10], mean=0.0, stddev=1.0),
                           name='biases_2')
        # 全连接层运算
        # 10个神经元
        # y_predict = [None,10]
        y1 = tf.matmul(x, weight_1) + bias_1
        y_predict = tf.matmul(y1, weight_2) + bias_2


  • 损失计算与优化

# 3、softmax回归以及交叉熵损失计算
    with tf.variable_scope("softmax_crossentropy"):
        # labels:真实值 [None, 10]  one_hot
        # logits:全脸层的输出[None,10]
        # 返回每个样本的损失组成的列表
        loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,
                                                                      logits=y_predict))
    # 4、梯度下降损失优化
    with tf.variable_scope("optimizer"):
        # 学习率
        train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)


目录
相关文章
|
8天前
|
机器学习/深度学习 API 语音技术
|
1月前
|
算法 TensorFlow 算法框架/工具
第3章 TensorFlow进阶
第3章 TensorFlow进阶
27 0
|
1月前
|
机器学习/深度学习 数据采集 PyTorch
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
|
3月前
|
机器学习/深度学习 Dart TensorFlow
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
|
2天前
|
机器学习/深度学习 运维 监控
TensorFlow分布式训练:加速深度学习模型训练
【4月更文挑战第17天】TensorFlow分布式训练加速深度学习模型训练,通过数据并行和模型并行利用多机器资源,减少训练时间。优化策略包括配置计算资源、优化数据划分和减少通信开销。实际应用需关注调试监控、系统稳定性和容错性,以应对分布式训练挑战。
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
Python中的深度学习:TensorFlow与PyTorch的选择与使用
Python中的深度学习:TensorFlow与PyTorch的选择与使用
|
2月前
|
机器学习/深度学习 搜索推荐 PyTorch
基于Pytorch深度学习的脑肿瘤分类识别
基于Pytorch深度学习的脑肿瘤分类识别
68 0
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
基于tensorflow深度学习的猫狗分类识别
基于tensorflow深度学习的猫狗分类识别
61 1
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
【TensorFlow】深度学习框架概述&TensorFlow环境配置
【1月更文挑战第26天】【TensorFlow】深度学习框架概述&TensorFlow环境配置
|
10天前
|
机器学习/深度学习 监控 安全
智能化视野下的守卫者:基于深度学习的图像识别技术在智能监控领域的革新应用
【4月更文挑战第9天】 随着人工智能技术的飞速发展,深度学习已经成为了推动计算机视觉进步的重要力量。尤其在智能监控领域,基于深度学习的图像识别技术正逐步转变着传统监控系统的功能与效率。本文旨在探讨深度学习技术如何赋能智能监控,提高对场景理解的准确性,增强异常行为检测的能力,并讨论其在实际部署中所面临的挑战和解决方案。通过深入分析,我们揭示了深度学习在智能监控中的应用不仅优化了安全防范体系,也为城市管理和公共安全提供了有力的技术支持。