人工智能应用工程师技能提升系列1、——TensorFlow2

简介: 人工智能应用工程师技能提升系列1、——TensorFlow2



tensorflow2介绍

这里先说一下选择使用tensorflow2讲解的原因,在对比一下同类型的一个优势。由于我们这个系列的目标是学习,大家使用的都是win系统的电脑,故而这里选择tensorflow2方便得多。当前最新的版本是2.15

官网(偶尔打不开): https://www.tensorflow.org/

中文网站: https://tensorflow.google.cn

可以在学习这个下拉菜单中找到官方给的可成内容,对应的还有API啥的,很方便。

TensorFlow与TensorFlow 2的主要区别体现在以下几个方面:

1. 计算图执行模式:TensorFlow 1.x主要使用静态计算图,需要先构建计算图,然后通过Session执行。而TensorFlow 2.x默认使用Eager Execution(即动态图执行模式),这使得操作更加直观和易于调试,开发效率更高。同时,TensorFlow 2.x也支持通过`tf.function`将动态图代码转化为静态图模式,兼顾运行效率。

2. API简化:相比于TensorFlow 1.x,TensorFlow 2.x删除了许多旧的API,并对一些API进行了合并和简化。例如,TensorFlow 2.x中,Keras被确立为官方的高级API,使得模型的构建和训练更加简洁明了。

3. 兼容性:虽然TensorFlow 2.x进行了许多改进,但它仍然需要考虑与TensorFlow 1.x的兼容性。为此,TensorFlow 2.x提供了一个兼容模块`tf.compat.v1`,使得大部分TensorFlow 1.x的代码可以在TensorFlow 2.x中运行。

总的来说,TensorFlow 2.x在易用性、开发效率和运行效率方面都进行了显著的改进,同时保持了与TensorFlow 1.x的兼容性。这使得开发者可以更方便地进行深度学习相关的工作。所以本课程内容选择的是TensorFlow2进行具体的操作讲解。

tensorflow2优势对比PyTorch

TensorFlow 2与PyTorch是两个流行的深度学习框架,它们都有各自的优势。以下是对TensorFlow 2与PyTorch的优势的详细描述:

TensorFlow 2的优势:

1. 工业级部署:移动端和嵌入式部署: TensorFlow在移动端和嵌入式设备上的部署能力优于PyTorch,对于Android或iOS平台,只需要很小的工作量。

高性能服务器端部署: TensorFlow Serving可以轻松地进行热插拔模型,而不会使服务失效,这在高性能服务器端部署时是一个显著优点。

2. 静态计算图优化:尽管TensorFlow 2默认使用动态图执行模式,但它仍然支持静态计算图的优化。对于一些需要高性能的场景,静态计算图可以提供更快的执行速度。

3. 广泛的社区支持和生态系统:TensorFlow作为一个较早的深度学习框架,拥有庞大的社区和丰富的生态系统,包括许多预训练模型、工具和库。

PyTorch的优势:

1. 动态计算图:PyTorch使用动态计算图,这意味着在构建神经网络时可以使用常见的Python语句(如if、while、for-loop),从而使网络构建过程更加直观和易于调试。

2. 易于使用的API:PyTorch的API设计非常直观,易于上手。它更加符合人类的思考过程,方便查看、修改中间变量的值。

3. 强大的GPU加速支持:PyTorch对GPU的支持非常出色,能够充分利用GPU进行加速计算。

TensorFlow 2和PyTorch各有优势,选择哪个框架取决于您的具体需求。如果您更关注工业级部署、静态计算图优化和广泛的生态系统支持,TensorFlow 2可能是更好的选择。而如果您更看重直观的动态计算图、易于使用的API和强大的GPU支持,那么PyTorch可能更适合您。

工具使用

这里使用的是【PyCharm Community Edition 2023.1.4】,社区版本免费用啊,用于学习绝对OK,python版本是3.9。

安装tensrflow

pip install tensorflow

或者直接在代码中

import tensorflow

ALT+回车,直接会出现安装提示,回车即可。

安装需要一些时间。

版本校验——tensorflow2

必须是这个版本,一定不能是1的,所以我们需要单独输出看看。

import tensorflow as tf
tf.__version__

直接运行可以看到对应的版本显示:

tensorflow常量constant

import tensorflow as tf
a = tf.constant([2, 3])
b = tf.constant([2, 4])
# 对象内容
print(a + b)
# 直接输出numpy结果。
print((a + b).numpy())

tensorflow基础数学计算

这里使用的时候例如下面是整数类型就都得是整数类型,不能出现浮点数什么的。

import tensorflow as tf
a = tf.constant([7, 22])
b = tf.constant([21.2, 55.7])
# 均值对象
print(tf.reduce_mean(a))
# 均值结果·整数值
print(tf.reduce_mean(a).numpy)
print(tf.reduce_mean(b).numpy)

平方计算

这里需要注意匹配数据类型。

import tensorflow as tf
a = tf.constant([7, 22])  # 不匹配
b = tf.constant([21.2, 55.7])  # 不匹配
# 外部计算均值·内部计算平方项·需要类型匹配
print(tf.reduce_mean(tf.square(b - a)))

最终效果:

tensorflow变量Variable

import tensorflow as tf
result = tf.Variable(666.666)
# 对象
print(result)
# 结果
print(result.numpy)

可以直接查看到结果,这里的numpy是函数,需要添加一对小括号。

API文档

点击打开文档可以直接查阅:All symbols in TensorFlow 2  |  TensorFlow v2.14.0

tensorflow2测试——构建一个线性模型

根据100个随机样本找出合适的w与b值,使得y=wx+b;

大致操作过程:

  1. 读取数据
  2. 构造一个线性模型 y=wx+b
  3. 构造损失函数
  4. 最小化方差(训练)
  5. 性能评估

csv文件快速生成:

=RANDBETWEEN(100000,999999)/1000000

=RANDBETWEEN(400000,599999)/100000

基本分析

import tensorflow as tf
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
# 直接获取二维数组·方便索引缩着切分
data = pd.read_csv("tensorflow_test_info.csv").values
# 样本特征·第一列的值
x = data[:, 0]
# 目标值·第二列的值
y = data[:, 1]
# 构造线性模型y=wx+b
# 我们计算分析的是浮点数,所以加上.0
w = tf.Variable(-6.0)
b = tf.Variable(6.0)
def model(x, w, b):
    """模型函数"""
    return w * x + b
# 视图呈现
plt.figure(figsize=(10, 5))
plt.axis([-0.01, 1.2, 1, 10])
plt.scatter(x, y)
plt.plot(x, model(x, w, b).numpy(), color='red')
plt.legend(['predicted_y', 'target_y'])
plt.show()

效果图:

构造损失函数

def loss(predicted_y, target_y):
    """损失函数"""
    return tf.reduce_mean(tf.square(predicted_y - target_y))

最小化方差优化

with tf.GradientTape() as t:
    """最小化方差优化"""
    dw, dd = t.gradient(loss((model(x, w, b), y), [w, b]))

训练效果

训练100遍效果:

训练1000遍最终结果:

视频效果:

tensorflow2测试——构建一个线性模型——训练效果

总结

最后从效果上看还是OK的,数据我准备的一般,没有成线性,毕竟是随机搞的,如果有兴趣的话可以做一个更贴近的随机数线性数据效果会更好的呢。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
30 11
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在教育中的创新应用:个性化学习的未来
【9月更文挑战第18天】人工智能在教育中的创新应用正在深刻改变着我们的教学方式和学习体验。从个性化学习方案的制定到智能化辅导与反馈,从多元化学习资源的推荐到自动化评分与智能考试系统,AI技术正在为教育领域带来前所未有的变革。面对这一变革,我们需要以开放和批判的态度拥抱它,共同探索AI时代教育的无限可能,为每一个学习者创造更美好的未来。
44 12
|
4天前
|
数据采集 人工智能 自然语言处理
探索软件测试中的人工智能应用
在当今快速发展的技术世界中,软件测试作为确保软件质量的关键环节,正经历着前所未有的变革。随着人工智能技术的不断成熟和应用,其在软件测试领域的潜力逐渐显现,为提升测试效率、准确性和自动化水平提供了新的可能性。本文将深入探讨人工智能在软件测试中的应用现状、面临的挑战以及未来的发展趋势,旨在为读者提供一个关于AI如何改变软件测试行业的全面视角。
|
1天前
|
机器学习/深度学习 人工智能 算法
软件测试中的人工智能应用与前景
随着技术的不断进步,人工智能(AI)在软件测试中的应用越来越广泛。本文将探讨AI在软件测试中的具体应用,包括自动化测试、缺陷预测及测试用例生成等方面的内容。同时,我们将讨论AI在软件测试中的优势和挑战,并展望未来的发展趋势。
|
18小时前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
22 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
3天前
|
机器学习/深度学习 存储 人工智能
深度学习中的模型压缩技术在人工智能领域,深度学习技术的迅猛发展带来了巨大的计算资源需求。为了解决这一问题,模型压缩技术应运而生。本文将介绍什么是模型压缩、常见的模型压缩方法以及其在实际应用中的意义。
随着深度学习技术的广泛应用,计算资源的需求也大幅增加。为减少资源消耗,提升模型效率,模型压缩技术成为研究热点。本文探讨了模型压缩的定义、主流方法和其重要性。通过量化、剪枝、知识蒸馏和轻量级架构等策略,模型得以在保持性能的同时减小体积,从而适用于资源受限的环境。这些技术不仅降低了计算成本,还推动了深度学习在移动设备和边缘计算等领域的应用,使AI技术更加普及和实用。总之,模型压缩在平衡模型性能与资源消耗之间发挥着关键作用,是未来AI发展的重要方向。
|
1天前
|
机器学习/深度学习 传感器 人工智能
AI与未来医疗:重塑健康管理新格局随着人工智能(AI)技术的飞速发展,医疗行业正迎来一场前所未有的变革。AI不仅在数据分析、诊断支持方面展现出巨大潜力,还在个性化治疗、远程医疗等多个领域实现了突破性进展。本文将探讨AI技术在医疗领域的具体应用及其对未来健康管理的影响。
人工智能(AI)正在彻底改变医疗行业的面貌。通过深度学习算法和大数据分析,AI能够迅速分析海量的医疗数据,提供精准的诊断和治疗建议。此外,AI在远程医疗、药物研发以及患者管理等方面也展现出了巨大的潜力。本文将详细探讨这些技术的应用实例,并展望其对健康管理的深远影响。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在医疗诊断中的应用与挑战##
本文探讨了人工智能(AI)在医疗诊断中的应用及其面临的主要挑战。通过分析AI在医学影像分析、电子病历处理和个性化治疗方案中的具体应用,揭示了AI技术如何提升诊断效率和准确性。然而,数据隐私、算法偏见和技术成本等问题仍然是AI在医疗领域广泛应用的主要障碍。 ##
|
2天前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
12 0
|
4天前
|
机器学习/深度学习 人工智能 算法
软件测试中的人工智能应用
在当今快速发展的科技世界中,人工智能(AI)已经在各个领域中展现了其强大的影响力。软件测试作为软件开发过程中的关键步骤,也正在逐渐受到AI技术的深刻影响。本文将探讨AI在软件测试中的应用,分析其带来的优势与挑战,并提供一些实际案例来说明这些变化。通过深入理解AI在软件测试中的角色,我们可以预见一个更加高效、智能的软件测试未来。
23 0