TensorFlow 2.0 教程(1)

2021-07-23 11:31:12 浏览数 (1)

1. TensorFlow 简介

TensorFlow 2.0 终于发布了,看了介绍之后,发现越来越像Keras了。主要的变化在于:

  • eager execution (动态图机制)
  • high-level api
  • flexible platform

2. 安装TensorFlow

推荐使用anaconda来管理python 版本。

  • 安装anaconda
  • conda create -n tf2 python=3
  • pip install tensorflow==2.0.0-alpha0

3. Get started

我们来看官方提供的一个最基本的图像分类的例子:

代码语言:javascript复制
  from __future__ import absolute_import, division, print_function
  import tensorflow as tf
  
  # mnist 是一个手写数字集
  mnist = tf.keras.datasets.mnist
  # 定义训练数据,测试数据
  (x_train, y_train), (x_test, y_test) = mnist.load_data()
  # x值对应的是图片像素的灰度值,对灰度值进行归一化处理
  x_train, x_test = x_train / 255.0, x_test / 255.0
  
  # 使用keras 的序列模型, 定义图片分类模型
  model = tf.keras.models.Sequential([
      # 28 * 28 的像素点平铺成一维向量
      tf.keras.layers.Flatten(input_shape(28, 28))
      # 使用致密层压缩,然后使用relu函数激活,增加非线性
      tf.keras.layers.Dense(128, activation='relu')
      # 使用Droupout 删掉20% 的节点,避免过拟合
      tf.keras.layers.Dropout(0.2)
      # 使用致密层压缩成10 类(数字0-9)。
      tf.keras.layers.Dense(10, activation='softmax')
  ])
  
  # 编译模型, 定义优化方法,损失函数,以及关注的指标
  model.compile(optimizer='adam',
               loss='sparse_categorical_crosstropy',
               metrics=['accuracy'])
  
  # 训练模型, 共5个轮次
  model.fit(x_train, y_train, epochs=5)
  
  # 验证模型
  model.evaluate(x_test, y_test)

测试下来,分类的正确率在98%左右。

对比下来,TensorFlow 2.0 更容易上手了,与keras无缝集成,省略了很多繁琐的步骤。

0 人点赞