• tensorflow---识别图像特征(吴恩达课程)


    tensorflow---识别图像特征

    解决:确定一张图是否是鞋子

     1 import matplotlib.pyplot as plt
     2 import tensorflow as tf
     3 #加载数据
     4 mnist=tf.keras.datasets.fashion_mnist
     5 (training_images,training_lable),(test_images,test_lable)=mnist.load_data()
     6 #查看图片和数据
     7 plt.imshow(training_images[42])
     8 print(training_lable[42])
     9 print(training_images[42])
    10 #标准化
    11 training_images=training_images/255.0
    12 test_images=test_images/255.0
    13 #构建网络模型,自定义网络层
    14 model=tf.keras.models.Sequential([tf.keras.layers.Flatten(),
    15                                  tf.keras.layers.Dense(128,activation=tf.nn.relu),
    16                                  tf.keras.layers.Dense(10,activation=tf.nn.softmax)])
    17 model.compile(optimizer='Adam',loss='sparse_categorical_crossentropy')
    18 model.fit(training_images,training_lable,epochs=100)
    19 #准确率
    20 model.evaluate(test_images,test_lable)

    注:

    1、categorical_crossentropy loss(交叉熵损失函数)

      交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况。

      它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近,不确定性越小,

      准确率越高。

      categorical_crossentropy 和 sparse_categorical_crossentropy 的区别

      如果你的 targets 是 one-hot 编码,用 categorical_crossentropy

        one-hot 编码:[0, 0, 1], [1, 0, 0], [0, 1, 0]

      如果你的 tagets 是 数字编码 ,用 sparse_categorical_crossentropy

        数字编码:2, 0, 1

    2、Adam(自适应梯度下降法)

      一种优化方式

    附notebook_jupyter运行步骤结果:

  • 相关阅读:
    面向过程, 面向对象, 类和对象, 类与数据类型
    python函数
    简单的登录注册函数
    Java遍历包中所有类
    spring boot jar启动
    过期算法
    负载均衡算法
    spring boot druid mybatis多数据源
    多线程wait和notify实现1212
    多线程售票
  • 原文地址:https://www.cnblogs.com/forest128/p/13850052.html
Copyright © 2020-2023  润新知