下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 41 | 实战MNIST Softmax网络(下)
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

TensorFlow快速入门与实战

共67讲 · 67课时,约1000分钟
6976
免费
01 | 课程介绍
免费
02 | 课程内容综述
免费
03 | 第一章内容概述
免费
04 | TensorFlow产生的历史必然...
免费
05 | TensorFlow与Jeff Dean的...
免费
06 | TensorFlow的应用场景
07 | TensorFlow的落地应用
08 | TensorFlow的发展现状
09 | 第二章内容概述
10 | 搭建你的TensorFlow开发环...
11 | Hello TensorFlow
12 | 在交互环境中使用TensorFl...
13 | 在容器中使用TensorFlow
14 | 第三章内容概述
15 | TensorFlow模块与架构介绍
16 | TensorFlow数据流图介绍
17 | 张量(Tensor)是什么(上...
18 | 张量(Tensor)是什么(下...
19 | 变量(Variable)是什么(...
20 | 变量(Variable)是什么(...
21 | 操作(Operation)是什么...
22 | 操作(Operation)是什么...
23 | 会话(Session)是什么
24 | 优化器(Optimizer)是什...
25 | 第四章内容概述
26 | 房价预测模型的前置知识
27 | 房价预测模型介绍
28 | 房价预测模型之数据处理
29 | 房价预测模型之创建与训练
30 | TensorBoard可视化工具介...
31 | 使用TensorBoard可视化数...
32 | 实战房价预测模型:数据分...
33 | 实战房价预测模型:创建与...
34 | 实战房价预测模型:可视化...
35 | 第五章内容概述
36 | 手写体数字数据集MNIST介...
37 | 手写体数字数据集MNIST介...
38 | MNIST Softmax网络介绍(...
39 | MNIST Softmax网络介绍(...
40 | 实战MNIST Softmax网络(...
41 | 实战MNIST Softmax网络(...
42 | MNIST CNN网络介绍
43 | 实战MNIST CNN网络
44 | 第六章内容概述
45 | 准备模型开发环境
46 | 生成验证码数据集
47 | 输入与输出数据处理
48 | 模型结构设计
49 | 模型损失函数设计
50 | 模型训练过程分析
51 | 模型部署与效果演示
52 | 第七部分内容介绍
53 | 人脸识别问题概述
54 | 典型人脸相关数据集介绍
55 | 人脸检测算法介绍
56 | 人脸识别算法介绍
57 | 人脸检测工具介绍
58 | 解析FaceNet人脸识别模型
59 | 实战FaceNet人脸识别模型
60 | 测试与可视化分析
61 | 番外篇内容介绍
62 | TensorFlow社区介绍
63 | TensorFlow生态:TFX
64 | TensorFlow生态:Kubeflow
65 | 如何参与TensorFlow社区开...
66 | ML GDE是TensorFlow社区...
67 | 课程总结

精选留言(7)

  • 2019-02-25
    # 绘制错误的手写体数字,其中A为正确标签
    fig = plt.figure()
    for i in range(15):
        plt.subplot(3,5,i+1) # 绘制前 15 个手写体,以 3 行 5 列子图形式展示
        plt.tight_layout() # 自适应子图尺寸
        plt.imshow(x_test[incorrect_indices[i]], cmap='Greys')
        plt.title("{} A:{}".format(predicted_classes[incorrect_indices[i]],y_test[incorrect_indices[i]])) # 设置对应标签为子图标题
        plt.xticks([]) # 删除 x 轴标记
        plt.yticks([]) # 删除 y 轴标记
     
    展开
    3
  • 2019-04-04
    彭老师,您在解释训练过程中第一轮val_acc比acc高的时候出现了一处问题:通过对比数据可以发现,横坐标0实际上对应着第1轮训练完成后的结果(因为横坐标的范围是0到4,同时纵坐标的值也可以佐证),所以横坐标为0时,val_acc和acc不都应该是第一轮训练结果之后的值吗。同时,有个问题想要请教:为什么训练数据也会有准确率(acc)?这个准确率(acc)是怎么算出来的?

    作者回复: 对呀,横坐标为0时就是第1个epoch训练完的结果。
    因为训练数据也有标签呀。

  • 2019-04-01
    彭老师,我好像找到原因了,模型参数的问题,我应该是开始训练的时候,模型参数没有清除。我把输出都清除之后,从头开始训练就差不多。

    作者回复: 👍👍

  • 1
    2019-03-25
    我的训练的时候的耗时和loss的值以及准确率怎么跑出来的结果和您的不一样呢
    Train on 60000 samples, validate on 10000 samples
    Epoch 1/5
     - 10s - loss: 0.1820 - acc: 0.9474 - val_loss: 1.1927 - val_acc: 0.9260
    Epoch 2/5
     - 9s - loss: 0.1601 - acc: 0.9524 - val_loss: 0.9594 - val_acc: 0.9404
    Epoch 3/5
     - 9s - loss: 0.1408 - acc: 0.9582 - val_loss: 0.9494 - val_acc: 0.9411
    Epoch 4/5
     - 10s - loss: 0.1234 - acc: 0.9637 - val_loss: 0.9348 - val_acc: 0.9420
    Epoch 5/5
     - 10s - loss: 0.1086 - acc: 0.9678 - val_loss: 0.9655 - val_acc: 0.9401
    展开

    作者回复: 因为在训练时,我们梯度下降的情况或许会有不同,所以不会输出完全一样的 loss 和 acc 哈。但是最终收敛的结果差距很小。

  • 2019-03-10
    correct_indices = np.nonzero(predicted_classes == y_test)[0] 这为什么要加一个[0]?javascript:;

    作者回复: 因为右边的结果是 (numpy.array)的形式,[0] 就可以取出 tuple 中的 numpy.array.

  • 2019-03-03
    老师, 这个例子里面, 用的keras , 这个算是tensorflow吗, 为啥不用ts呢, 不是keras能做的ts不都能做吗 , 不是面向ts实战吗

    作者回复: 因为大部分学员建议用高层次 API。入门的话,Keras 更好上手,也是大部分AI用户的选择。TF 低层次 API 讲起来比较复杂,并且最近大量都 depreacated。等 2.0 出来了,可以基于 TensorFlow Eager 跟大家讲讲动态图

  • 2019-03-01
    没讲为什么2个隐藏层,每个隐藏层的神经元是512个,为什么用relu激活函数

    作者回复: 2个隐藏层是考虑到识别任务的难度和数据量多少。
    512是经验数值,也可以用 256或者128。大家在很多论文中看到对于这类超参数的选择,通常都是基于某个数据集上,根据性能表现最终选择了某个值。
    相比 sigmoid 和 tanh,使用relu 激活函数计算速度更快,也是大家现在常用的激活函数。