Tensorflow 2.0 初学者的自学笔记(1)

Tensorflow 2.0 初学者的自学笔记(1)

简介

其实之前我学习过tf1.1的一些知识,当时被tf.session和tf.graph搞得死去活来,各种看不懂,但是前段时间被教授强迫再次捡起自己垃圾的tensorflow的时候, 决定好好升级一下自己的大脑,顺便写下来方便自己复习
本文学习子tensorflow2.0的官方中文文档。主要作用是方便我复习。
原文地址

基本的设计逻辑

我们在设计一个深度学习模型的时候,通常分为以下几步。

  1. 们会对我们的数据进行预处理,但是因为不同的任务预处理的方法存在差别,因此就不在这里详细展开来说这个事情。
  2. 设计一个类,用来表示我们设计好的模型
  3. 在类的外面,定义我们的损失函数(loss function)和选择优化器(optimizer).其中损失函数就是我们用来梯度下降的原函数,而选择优化器则是我们选择的在梯度曲面上的更新参数的方法。
  4. 选择衡量指标来度量模型的损失值(loss)和准确率(accuracy)。这些指标在 epoch 上累积值,然后打印出整体结果。
  5. 使用修饰器@tf.function 和tf.GradientTape 来设计训练模型的函数。在python当中,修饰器的主要作用是在我们想给一个函数扩展功能但是又不想破坏其本身的时候,调用一个可以将函数作为对象传入的函数,将其作为修饰器,从而实现上述功能的。在这里修饰器的作用是取代原来的回话所存在的。参考内容地址
  6. 训练并测试我们的模型。

示例代码详解

  1. 将 Tensorflow 导入您的程序:
from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow as tf

from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
  1. 加载并准备 MNIST 数据集,并使用 tf.data 来将数据集切分为 batch 以及混淆数据集
mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Add a channels dimension
x_train = x_train[.<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: TensorFlow 2.0的设计理念是简单粗暴,旨在提供更加直观、易用的编程体验,让用户更快速地构建、训练和部署机器学习模型。以下是TensorFlow 2.0的简单粗暴特性: 1. 动态图计算:TensorFlow 2.0默认采用动态图计算方式,即使用即定义计算图。这使得用户能够像编写Python代码一样自然地构建和调试模型,无需担心图构建过程中的繁琐细节。 2. Keras集成:TensorFlow 2.0将Keras作为其高级神经网络API的标准前端,实现了更加简洁、易懂的模型构建和训练接口。用户无需再额外安装和配置Keras,而且可以直接利用Keras强大的功能,如模型序列化、多种损失函数和优化器等。 3. 切换模式:TensorFlow 2.0提供了一个方便的转换工具,用户可以将TensorFlow 1.x的代码迁移到2.0版本,以享受新的特性,无需重写整个代码。这种平滑迁移的设计使得用户更容易接受新版本并从中受益。 4. Eager Execution(即时执行):TensorFlow 2.0中的Eager Execution模式使得用户可以逐行执行模型代码并立即返回结果,这有助于快速验证和调试模型,尤其对于初学者来说更容易上手。 5. SavedModel格式:TensorFlow 2.0引入了SavedModel格式作为模型的默认保存格式,该格式具有更好的跨平台和版本控制的兼容性。用户能够更方便地保存和分享自己的模型,同时也能更好地与其他TensorFlow开发者进行模型交流。 总之,TensorFlow 2.0的简单粗暴特性使得机器学习的开发变得更加直观、高效,并能够吸引更多的开发者加入到机器学习的领域中。 ### 回答2: TensorFlow 2.0是一种简单粗暴的机器学习框架。相较于以往版本,2.0在易用性、灵活性和效率方面都有很大的提升。 首先,TensorFlow 2.0引入了eager execution(即即时执行),这意味着我们可以像编写Python代码一样编写和运行TensorFlow操作,而无需定义计算图。这样可以更容易地调试和理解代码,使得开发过程更加直观和高效。 其次,TensorFlow 2.0取消了许多低级API,如tf.Session和tf.placeholder,大大减少了代码的复杂度。取而代之的是一些更高级且易用的API,如tf.keras,它提供了一个简单而且强大的接口来构建神经网络模型。我们可以使用一些简单的函数调用来定义和训练模型,从而减少了样板代码,同时还能保持高度的灵活性。 此外,TensorFlow 2.0还提供了一个称为tf.data的新的高性能数据输入管道。我们可以使用tf.data.Dataset将数据集导入模型中,并进行预处理、批处理等操作,以便更好地利用硬件资源,并实现更高效的训练过程。 最后,TensorFlow 2.0充分利用了现代硬件的加速能力,如GPU和TPU。它使用了tf.function装饰器来自动转换函数为高性能的图执行模式,并支持分布式训练,以便在分布式系统上进行大规模的模型训练。 综上所述,TensorFlow 2.0确实是一种简单粗暴的机器学习框架。它简化了开发过程,提高了代码的可读性和可维护性,并利用了现代硬件的优势,从而大大提升了训练效率和性能。无论是初学者还是有经验的开发者,都可以受益于这个强大而易用的框架。 ### 回答3: 简单粗暴的TensorFlow 2.0是一个更新版本的Google开源机器学习框架,旨在让使用变得更加简便。TensorFlow 2.0采用了Eager Execution模式,移除了一些繁琐的操作,与Python的语义更加契合。这使得建立和训练神经网络变得更加直观和容易。 TensorFlow 2.0引入了Keras作为其主要高级API,将其整合为TensorFlow的一部分。Keras提供了丰富而直观的高级API,可以方便地构建各种神经网络模型。通过将Keras集成到TensorFlow中,使用者可以轻松地创建、训练和部署深度学习模型。 TensorFlow 2.0还引入了tf.function装饰器,允许将普通Python函数转换为高效的TensorFlow图,加速模型的训练和推理过程。 此外,TensorFlow 2.0对于分布式训练、模型部署和端到端生态系统的支持都有所改进。它提供了更好的工具和接口,使得分布式机器学习变得更加容易。TensorFlow 2.0还支持模型在移动设备、Web和边缘设备上部署,并提供了可拓展的生态系统,包括TensorFlow Hub、TensorBoard和TensorFlow.js等。 总之,简单粗暴的TensorFlow 2.0通过增强开发者的体验和提供更加直观的API,大大简化了神经网络的构建和训练过程。新版本的引入了许多新特性和改进,使得TensorFlow 2.0成为构建高性能、可扩展的机器学习模型的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值