人工智能开发实战TensorFlow机器学习框架解析

news2024/11/13 12:17:58

内容导读

TensorFlow概述

TensorFlow环境搭建

TensorFlow计算机加速

一、TensorFlow概述

1、TensorFlow简介

‌‌TensorFlow是由‌Google开发的用于‌机器学习和人工智能的开源软件库,特别适用于‌深度神经网络的训练和推理。‌ 它是一个基于‌数据流图的符号数学系统,设计用于解决复杂的数学问题,并广泛应用于机器学习、深度学习等领域。

TensorFlow可以做很多有趣的工作,如图像风格迁移,通过神经网络可以将一幅图片的风格迁移到另一幅图片上。

如图所示是荷兰后印象派画家梵•高的The Starry Night(《星月夜》),将其作为被迁移的图片。

原始图片为麻省理工学院Stata中心,迁移后的图片如下。

2、TensorFlow版本变化

为了让大家更好地理解TensorFlow,下面从3个不同的角度对其进行分析。

(1)TensorFlow的计算模型为计算图(Graph)

TensorFlow的名字本身由两个单词构成,即Tensor和Flow。Tensor指的是张量,在TensorFlow中,Tensorf可以简单地理解为多维数组,而Flow翻译过来是“流”,表达了张量之间通过计算进行相互转换的含义。

(2)TensorFlow的数据模型为张量(Tensor)

在TensorFlow中,所有的数据类型都表示为张量。张量是一个多维数组,如果直接打印某一个张量,并不会像打印List或NumPy一样输出它的值,而是会得到一个结构,结构中包括该张量的名称、维度和类型。

(3)TensorFlow的运行模型为会话(Session)

在TensorFlow中,有了数据模型以及计算模型后,在代码执行过程中需要使用会话,会话负责管理代码运行时的所有资源。如果没有指定,会话将会自动加入系统生成的默认计算图中,执行其中的运算。

3、分布式TensorFlow

分布式TensorFlow有一些基本概念

(1)task:一个task一般会关联到某个单一的TensorFlow服务端的处理过程,属于一个特定的Job,并且在该Job的任务列表中有唯一的索引,可以将其理解为每台机器上的一个进程。

(2)Job:Job分为ps、worker两种,一个Job包含一系列致力于某个相同目标的task。

(3)Cluster(集群):一个TensorFlow集群包含一个或者多个TensorFlow服务端,集群被切分为一系列Job,而每个Job又会负责一系列的task。一个集群会专注于一个相对高层的目标,如用多台机器并行地训练一个神经网络。

二、TensorFlow环境搭建

1、安装Anaconda

‌‌Anaconda是一个用于科学计算的‌Python发行版,它提供了便捷的包管理和环境管理功能,特别适用于数据分析、‌机器学习等领域。

(1)下载64位Anaconda,然后双击下载好的包进入安装界面,单击“Next >”按钮。

说明:目前此工具已更新到更高版本v24.1.2啦,安装过程与2019.03相同。

(2)进入同意许可(License Agreement)界面,单击“I Agree”按钮同意协议许可

(3)进入选择安装类型(Select Installation Type)界面,选中“All Users (requires admin privileges)”单选按钮,为计算机所有用户进行安装,单击“Next >”按钮

(4)进入选择安装路径(Choose Install Location)界面,单击“Browse”按钮选择安装路径,然后单击“Next >”按钮

(5)进入高级安装选项(Advanced Installation Options)界面,勾选复选框,单击“Install”按钮

(6)进入安装完成(Installation Complete)界面,等待安装完成,这个过程比较长,安装完成后单击“Next >”按钮

(7)进入软件推荐界面,Anaconda推荐使用PyCharm作为IDE,PyCharm的安装在第2章介绍过,单击“Next >”按钮

(8)进入感谢安装Anaconda界面,取消勾选复选框,相关知识将在本书后续内容中进行讲解,单击“Finish”按钮,完成安装

(9)安装完成后,打开命令提示符窗口,输入“conda -V”以获得Anaconda版本号,如果输出正常,证明Anaconda正确安装,如图所示(目前已更新到了高版本v24.1.2啦)

(10)找到并打开Anaconda Navigator软件,进入Anaconda界面模式,Anaconda Navigator图标如图

(11)Anaconda在默认环境“base(root)”,新建TensorFlow的环境,在主界面中选择“Environments”→“Create”目录,在弹出的对话框,进行相应设置

(12)等待创建完成,创建完成的界面

(13)新环境创建完成后,在命令提示符窗口输入“activate TensorFlow”,进入新环境,如图

2、使用pip的Windows环境安装

(1)CPU版本安装

在Anaconda的TensorFlow环境下的命令提示符窗口内输入“pip install tensorflow==1.9.0”,安装1.9.0版本的TensorFlow及其相关依赖包(安装过程需全程联网),如图。

说明:当前已更新为更高版本。

安装完成后测试是否安装成功,在Anaconda的TensorFlow环境下的命令提示符窗口内输入“python”,进入Python环境。

输入“import tensorflow as tf”命令,查看是否报错,不报错说明安装成功。

(2)GPU版本安装

安装GPU版本的TensorFlow之前需要查看自己的计算机或嵌入式设备是否支持该版本。

如果支持GPU版本的TensorFlow,在安装之前需要安装CUDA和cuDNN。

要安装cuDNN,需要注册成为NVIDIA用户,填写问卷调查才可以下载。

在安装时需注意CUDA、cuDNN的版本匹配问题,安装成功后,即可开始安装GPU版本的TensorFlow,可以新建一个Anaconda环境安装GPU版本的TensorFlow。

在Anaconda环境下的命令提示符窗口输入“pip install tensorflow-gpu==1.9.0”命令即可完成安装。

3、使用pip的Linux环境安装

在Linux(以Ubuntu为例)下安装Anaconda和在Windows下安装的过程一样,在Linux系统下安装完Python(很多Linux系统自带Python 2和Python 3)和pip工具。

直接输入“pip3 install tensorflow ==1.9.0”命令完成CPU版本TensorFlow的安装,如下所示:

# 目前已更新到高版本24.1.2
corday@ubuntu:~$  pip3   install   tensorflow==1.9.0

4、使用源代码编译安装

在Linux操作系统上通过源码安装TensorFlow,需要使用Bazel编译工具。

安装依赖JDK8之后通过apt-get安装或者下载Bazel源码,然后安装Bazel编译工具。

Bazel编译工具安装完成后,下载TensorFlow源码目录。

进入TensorFlow的源码目录后,输入“./configure”命令进行TensorFlow编译安装配置。

配置过程中会出现Python路径询问等问题,可以根据自己的实际情况进行选择或者选择默认配置。

在配置完成后,采用Bazel命令安装TensorFlow,输入“bazel build -c opt /tensorflow/tools/pip_package:build_pip_package”。

安装完成后输入“bazel-bin/tensorflow/tools/pip_package/build_pip_package/tmp/tensorflow_pkg”命令,

在tmp/tensorflow_pkg目录下生成扩展名为.whl的文件,然后使用pip3命令安装该文件即可。

# 命令如下
pip3  install  文件名.whl

三、TensorFlow计算机加速

1、TensorFlow的使用

示例:新建TensorFlow目录,在TensorFlow目录下新建文件,命名为test.py,在PyCharm中编写代码实现向量的加法运算。

# tf.constant是一个计算,计算结果是一个张量,保存在变量a或者b中
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([3.0, 4.0], name="b")
# 将a和b相加,相加后的名字为“add”
result = tf.add(a, b, name = "add")
# 输出
print(result)
# 创建一个会话,通过Python上下文管理器来管理该会话
# 启动默认图表
with tf.Session() as sess:
      print("a = [1.0, 2.0], b = [3.0, 4.0]")
      print("两个向量相加: a + b = ", sess.run(result))
      # 将数据写到日志中
      summary_writer = tf.summary.FileWriter("log", sess.graph)

运行后效果图:

2、TensorFlow使用GPU加速

示例:在TensorFlow项目下新建test_gpu.py文件,使用GPU版本的TensorFlow实现向量的相加。

(在同一个环境下可同时安装CPU版本的TensorFlow和GPU版本的TensorFlow)

import tensorflow as tf
# 通过tf.device()将运算指定到CPU上
with tf.device("/cpu:0"):
      a = tf.constant([1.0, 2.0], name="a")
      b = tf.constant([3.0, 4.0], name="b")
# 通过tf.device()将运算指定到GPU上
with tf.device("/gpu:0"):
      result = tf.add(a, b, name = "add")
# 利用log_device_placement将参与运算的设备输出
sess = tf.Session(config=tf.ConfigProto(log_device_placement = True))
print(sess.run(result))

由上代码可知,并不是所有的操作都放在GPU上,a = tf.constant([1.0, 2.0], name="a")和b = tf.constant([3.0, 4.0], name="b")。

两个定义a和b常量的操作会通过“with tf.device("/cpu:0")”函数加载到CPU上,使用result = tf.add(a, b, name = "add")做相加运算时,这个过程会被加载到GPU上,并且这个操作会将参与运算的设备信息打印出来。

在GTX1050上得到如下运算结果:

Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1
add: (Add): /job:localhost/replica:0/task:0/device:GPU:0
a: (Const): /job:localhost/replica:0/task:0/device:CPU:0
b: (Const): /job:localhost/replica:0/task:0/device:CPU:0
[4. 6.]

更多精彩内容请关注本站!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2083529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

08 - debugfs

---- 整理自 王利涛老师 课程 实验环境:宅学部落 www.zhaixue.cc 文章目录 0. 什么是 debugfs1. debugfs 配置编译和注册运行2. 第一个 debugfs 编程示例3. 通过 debugfs 导出整型数据4. 通过 debugfs 导出 16 进制数据5. 通过 debugfs 到处数组6. 通过 debugfs 导出…

【SQL】换座位

目录 题目 分析 代码 题目 表: Seat ---------------------- | Column Name | Type | ---------------------- | id | int | | student | varchar | ---------------------- id 是该表的主键(唯一值)列。 该表的每一行都表示学…

ComfyUI SDXL Prompt Styler 简介

SDXL Prompt Styler 来自于 comfyui-art-venture 节点 style 已经更新 旧版本的 sai-line art 变更为 line art log_prompt 已经更新 旧版本的 false 变更为 Yes 或 No style_name 已经更新 旧版本的 true (不再适用)(可以尝试对应style中…

【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch12 随机森林(Random Forest)

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-…

dht11 + Sc32440驱动

一、DHT11概述 1、简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件&#xff…

【专题】2024年中国AI人工智能基础数据服务研究报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37516 随着人工智能技术的迅猛发展,AI 基础数据服务行业迎来了前所未有的发展机遇。报告合集显示,2023 年中国 AI 基础数据服务市场规模达到 45 亿元,且未来五年复合增长率有望达到 30.4%。多模态大…

如何在不同设备上检查IP 地址?

IP 地址(Internet 协议地址)是网络上设备的唯一标识符。了解如何查找 IP 地址对于解决网络问题、设置网络设备和维护网络安全非常重要。本文将详细介绍如何在不同设备上检查 IP 地址,包括 Windows 计算机、Mac 计算机、智能手机(A…

【Material-UI】Rating组件:如何使用Basic Rating实现多种评分方式

文章目录 一、Rating 组件概述1. 组件介绍2. Basic rating 的核心功能 二、Basic rating 的详细使用方法1. 受控组件(Controlled)2. 只读模式(Read-only)3. 禁用状态(Disabled)4. 无评分状态(No…

嵌入式笔试准备

文件组合 将传输文件切分成多个部分&#xff0c;按照原排列顺序&#xff0c;每部分文件编号为一个正整数。 class Solution { public:vector<vector<int>> fileCombination(int target) {vector<vector<int>> res;int sum 0;for(int i1; i<targe…

VS2017+QT不能正常添加资源文件

is not in a subdirectory of the resource file.You now have the option to copy this file to a valid location. . 该错误原因是项目路径英文导致的&#xff0c;换成全中文路径就没问题了 具体步骤&#xff1a; 双击qrc文件&#xff0c;先添加前缀&#xff0c;然后添加图片…

机器学习之监督学习(一)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 机器学习之监督学习&#xff08;一&#xff09; 1.监督学习定义2.监督学习分类2.1回归 regression2.2 分类 classification 3.线性回归 linear regression3.1 单特征线性回归…

Android 突破边界:解密google Partner机制获取Resource

在 Android 应用开发中&#xff0c;除了可以查找系统中的特定 APK 并获取其信息外&#xff0c;还可以通过 Partner 机制获取 Partner APK 的资源文件&#xff0c;同时这种机制也是一种跨进程的通信方式。本文将进一步探讨这些内容。 1.Partner apk注册特定的action广播 /** M…

Windows上编译GTest并执行测试用例

目录 0 背景1 环境2 生成GTest动态库2.1 下载最新GTest库2.2 编译GTest2.2.1 cmake gtest2.2.1.1 遇到问题&#xff1a;target参数不对2.2.1.2 遇到问题&#xff1a;xxx thread 编译报错 2.2.2 用VS2015编译依赖库 3 依赖库部署3.1 遇到问题 4 编写测试用例5 效果展示 0 背景 …

python中列表的复制亦有区别

python中 对列表的复制可以直接新变量名字等于原有列表名字&#xff0c;或者 创建新的列表从原有列表一个个复制进来。他们的区别在于下面 两个图中&#xff1a;

Codeforces 1304C - Air Conditioner(1500)

Air Conditioner 题面翻译 一个餐馆中有个空调&#xff0c;每分钟可以选择上调 1 1 1 个单位的温度或下调 1 1 1 个单位的温度&#xff0c;当然你也可以选择不变&#xff0c;初始的温度为 m m m 。 有 n n n 个食客&#xff0c;每个食客会在 t i t_i ti​ 时间点到达&am…

【maven】阿里云仓库配置

阿里云公共仓库的配置看起来有多种类型的仓库: 配置指南 我的maven是idea 自带的:D:\Program Files\JetBrains\IntelliJ IDEA 2022.3.1\plugins\maven\lib\maven3\</

突破编程 C++ 设计模式(组合模式)详尽攻略

在软件开发中&#xff0c;设计模式为程序员提供了解决特定问题的最佳实践。设计模式不仅提高了代码的可复用性和可维护性&#xff0c;还能帮助团队更好地进行协作。在这篇文章中&#xff0c;我们将深入探讨组合模式——一种结构型设计模式。 组合模式允许你将对象组合成树形结…

哪里能免费申请IP SSL证书

一、选择可信赖的证书颁发机构 首先&#xff0c;需要选择一个可信赖的证书颁发机构&#xff08;CA&#xff09;。知名的CA机构如JoySSL、Symantec、GlobalSign等提供IP SSL证书服务。这些机构能够提供符合国际标准的SSL证书&#xff0c;确保数据传输的安全性和服务器的身份验证…

Docker 安装 SqlServer

摘要&#xff1a;我们工作当中经常需要拉取多个数据库实例出来做集群&#xff0c;做测试也好&#xff0c;通过 Docker 拉取 SqlServer 镜像&#xff0c;再通过镜像运行多个容器&#xff0c;几分钟就可以创建多个实例&#xff0c;效率是相当的高。 1. docker 拉取镜像 注意&am…

C++与OpenCV联袂打造:智能视觉识别技术的实践与探索

C与OpenCV联袂打造&#xff1a;智能视觉识别技术的实践与探索 1. 环境设置与准备工作1.1 安装OpenCV和配置开发环境1.1.1 下载OpenCV1.1.2 安装OpenCVWindows系统Linux系统 1.1.3 配置OpenCV库 1.2 C编译器的选择与配置1.2.1 Windows系统1.2.2 Linux系统1.2.3 编译器配置 1.3 选…