tensorflow1.x 基础案例1

在这里插入图片描述

在这里插入图片描述
从一些基础案例中慢慢掌握tensorflow:

1.1 用tensorflow打印“hello,world”

为什么首先学习hello world?

  1. 快速熟悉TensorFlow的基本用法和工作流程。
  2. "Hello World"不需要复杂的依赖,这有助于快速搭建TensorFlow环境,确保所有东西都安装正确。
  3. 通过编写一个简单的程序,学习TensorFlow中的基础概念:会话(Sessions)
import tensorflow as tf

hello = tf.constant('hello, world')  # 创建一个常量操作,创建的操作会被添加为计算图中的一个节点。
# 在TensorFlow中,所有的操作都是计算图中的节点,它们定义了数据(张量)如何流动和计算。
sess = tf.Session()
print(sess.run(hello))

1.2和积运算和矩阵乘法

如何在TensorFlow 1.x中创建图、定义操作、使用会话执行操作以及如何与占位符和动态输入一起工作

  • 常量操作(Constant Operations):

使用tf.constant创建常量。常量在TensorFlow中是不可变的,并且它们的值在图的执行过程中保持不变。
代码中创建了两个常量a和b,分别赋值为2和3。

  • 会话(Session):

TensorFlow 1.x需要会话来执行图中的操作。会话是执行图的上下文,它负责协调操作的执行。
使用with tf.Session() as sess:创建会话,并使用as关键字自动管理会话的生命周期。

  • 图(Graph):

TensorFlow程序是基于图的。图中的节点表示操作,边表示数据流(张量)。
代码中的a+b和a*b是图中的操作,它们在会话中被执行。

  • 占位符(Placeholders):

使用tf.placeholder创建占位符。占位符是图中的一个节点,它在执行图之前需要被赋予具体的值。
代码中的a和b作为占位符,允许在会话运行时提供动态输入。

  • 操作(Operations):

代码定义了两个操作:add和mul,分别对应加法和乘法。
这些操作在会话中通过sess.run执行,需要提供输入值。

  • 矩阵乘法(Matrix Multiplication):

使用tf.matmul进行矩阵乘法操作。这是深度学习中常用的操作之一。
代码创建了两个矩阵常量matrix1和matrix2,并进行了矩阵乘法。

  • 执行操作(Executing Operations):

使用sess.run执行图中的操作。对于product,它需要matrix1和matrix2作为输入,这些输入在会话中自动执行。
输出结果以NumPy数组的形式返回。

  • Feeding机制:

对于占位符,需要使用feed_dict参数在sess.run中提供输入值。这是TensorFlow 1.x中提供动态输入的方式。


import tensorflow as tf

# 和积运算方式1
a = tf.constant(2)
b = tf.constant(3)

with tf.Session() as sess:
    print("__________________")
    print("a:", sess.run(a), " b:", sess.run(b))
    print("a+b=", sess.run(a+b))
    print("a*b=", sess.run(a * b))

# 和积运算方式2
add = tf.add(a, b)
mul = tf.multiply(a, b)

with tf.Session() as sess:
    print("变量和为:", sess.run(add, feed_dict={a: 2, b: 3}))
    print("变量积为:", sess.run(mul, feed_dict={a: 2, b: 3}))

# 矩阵乘法
matrix1 = tf.constant([[3., 1.]])
matrix2 = tf.constant([[1.], [2.]])
product = tf.matmul(matrix2, matrix1)

with tf.Session() as sess:
    result = sess.run(product)
    print(result)

运行结果:

a: 2  b: 3
a+b= 5
a*b= 6
变量和为: 5
变量积为: 6
[[3. 1.]
 [6. 2.]]

1.3TensorFlow Eager API

Eager API的主要特点:

  1. 即时执行:操作在调用时立即执行,无需构建计算图和启动会话。
  2. 易用性:简化了TensorFlow的使用,使得研究和开发更加直观。
  3. 兼容性:大多数TensorFlow API在Eager模式下与非Eager模式下保持一致。
  4. 转换性:Eager模式编写的模型可以转换为计算图,以便进行优化和部署。
import numpy as np
import tensorflow as tf

# 设置Eager API
tf.enable_eager_execution()
tfe = tf.contrib.eager

# 定义常数张量
a = tf.constant(2)
b = tf.constant(3)

# 不用tf.Session,进行操作
c0 = a + b
d0 = a * b

# 与Numpy完全兼容
a = tf.constant([[2, 1], [1, 0]], dtype=tf.float32)
b = np.array([[3, 0], [5, 1]], dtype=np.float32)
c1 = a + b
d1 = tf.matmul(a, b)
print(c0, d0, c1, d1)

# 遍历张量
for i in range(a.shape[0]):
    for j in range(a.shape[1]):
        print(a[i][j])

结果·:

tf.Tensor(5, shape=(), dtype=int32) 
tf.Tensor(6, shape=(), dtype=int32) 
tf.Tensor(
[[5. 1.]
 [6. 1.]], shape=(2, 2), dtype=float32) 
 tf.Tensor(
[[11.  1.]
 [ 3.  0.]], shape=(2, 2), dtype=float32)
tf.Tensor(2.0, shape=(), dtype=float32)
tf.Tensor(1.0, shape=(), dtype=float32)
tf.Tensor(1.0, shape=(), dtype=float32)
tf.Tensor(0.0, shape=(), dtype=float32)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为二进制文件添加.gnu_debugdata调试信息

前言 在使用gcc/g编译二进制文件过程中,如果添加了-g参数,编译出来的二进制文件会带有debug信息,供调试使用。但是debug信息往往占用空间很大,导致二进制文件太大,在发布到生产环境时,一般会去掉调试信息&…

【分布式系统】ceph部署(命令+截图巨详细版)

目录 一.存储概述 1.单机存储设备 2.单机存储的问题 3.商业存储 4.分布式存储​编辑 4.1.什么是分布式存储 4.2.分布式存储的类型 二.ceph概述 1.ceph优点 2.ceph架构 3.ceph核心组件 4.OSD存储后端 5.ceph数据存储过程 6.ceph版本发行生命周期 7.ceph集群部署 …

Python爬虫:BeautifulSoup的基本使用方法!

1.简介 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析“标签树”等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup…

js字符串文字添加不同颜色,replace的妙用$1...$9

更改字符串第一个数字为红色显示,第二个数字为黄色显示 $1匹配的是正则第一个括号选中的字符串,可以使用正则不断用括号匹配然后更改样式 const testStr "剩余12个名额,截止时间12月25日" testStr this.testStr.replace(/(\d)(\D…

GD32F303之CAN通信

1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL:高速外部时钟&#xff1…

[图解]SysML和EA建模住宅安全系统-14-黑盒系统规约

1 00:00:02,320 --> 00:00:07,610 接下来,我们看下一步指定黑盒系统需求 2 00:00:08,790 --> 00:00:10,490 就是说,把这个系统 3 00:00:11,880 --> 00:00:15,810 我们的目标系统,ESS,看成黑盒 4 00:00:18,030 --> …

软考:软件设计师 — 2.操作系统

二. 操作系统 1. 操作系统概念 (1)操作系统的作用 操作系统是计算机硬件之上的第一层软件系统。 操作系统通常用来: 管理系统的硬件、软件、数据资源。控制程序运行。人机之间的接口。应用软件与硬件之间的接口。 可概括为: …

汽车零配件行业看板管理系统应用

生产制造已经走向了精益生产,计算时效产出、物料周转时间等问题,成为每一个制造企业要面临的问题,工厂更需要加快自动化,信息化,数字化的布局和应用。 之前的文章多次讲解了企业MES管理系统,本篇文章就为大…

HybridCLR原理中的重点总结

序言 该文章以一个新手的身份,讲一下自己学习的经过,大家更快的学习HrbirdCLR。 我之前的两个Unity项目中,都使用到了热更新功能,而热更新的技术栈都是用的HybridCLR。 第一个项目本身虽然已经集成好了热更逻辑(使用…

楼道灯微波雷达模块模组,智能感应uA级超低功耗替换红外传感器,飞睿助力绿色照明

随着科技的飞速发展,LED楼道灯早已不仅仅是照亮我们回家路的工具,它们正变得越来越智能、高效和环保。今天,就让我们一起探索LED楼道灯背后的科技——飞睿智能微波雷达模块模组,以及它如何以超低功耗(uA级别&#xff0…

信息化安全管理怎么做

企业如何做好安全管理工作?检查频次多了怕影响子正常生产经营,效益低下,检查频次少了又担心管控不住。”这是安全管理部综合业务室的困惑,也是很多企业的困惑。面对企业在安全管理中的困惑与挑战,采用信息化平台与精细化管理策略…

强烈推荐!!李沐老师《动手学深度学习》最新Pytorch版!

动手学深度学习(PyTorch版)》是由李沐、Aston Zhang和孔德威共同编写的教材,专为深度学习初学者和实践者设计。本书使用PyTorch作为主要的深度学习框架,全面系统地介绍了深度学习的基本理论、常见模型和实际应用技巧。 书中内容包括深度学习的基础知识、…

华南师范大学“大学生校外实践教学基地”授牌仪式暨见习参观活动圆满结束

为促进校企合作的深入发展,培育出具有实际应用技能的人才,7月9日,华南师范大学数学科学院与广东泰迪智能科技股份有限公司联合开展“大学生校外实践教学基地”授牌仪式暨见习参观活动。华南师范大学数学科学院数据科学系主任陈艳男、副主任陈…

物联网实训室建设可行性报告

一、建设物联网实训室的目的和意义 随着信息技术的快速发展,物联网(IoT)已成为推动社会进步和经济发展的关键技术之一。物联网技术的集成应用,不仅能够提高生产效率,还能促进智慧城市、智能家居、智能农业等多个领域的…

企业网站源码系统 自主快速搭建响应式网站 海量模版随心选择 带完整的源代码包以及搭建教程

系统概述 企业网站源码系统,是一款专为中小企业量身定制的网站建设解决方案。该系统基于先进的Web开发技术,融合了模块化设计理念和用户友好的操作界面,旨在帮助企业用户无需编程基础,即可轻松搭建出符合自身需求的响应式网站。通…

星环科技推出语料开发工具TCS,重塑语料管理与应用新纪元

5月30-31日,2024向星力未来数据技术峰会期间,星环科技推出一款创新的语料开发工具——星环语料开发工具TCS(Transwarp Corpus Studio),旨在通过全面的语料生命周期管理,极大提升语料开发效率,助…

衣服、帽子、鞋子相关深度学习数据集大合集(2)

继续为大家分享关于衣帽鞋子的深度学习数据集,主要有衣服、帽子、鞋子、短裤、短袖、T恤等。 1、人头上带着各种帽子图片数据集 数据格式:图片 是否标注:已标注 标注格式:yolov8 图片数量:1853张 数据查看地址&a…

捷配生产笔记-细间距芯片的表面处理工艺:OSP与沉金工艺的重要性

在现代电子制造领域,随着技术的进步,电子设备变得越来越小型化和高性能化。细间距芯片作为实现这一目标的关键组件,其制造工艺要求极为严格。在这些要求中,表面处理工艺尤为关键,因为它直接影响到芯片的焊接质量和长期…

叉车司机疲劳检测系统解决方案

在日益繁忙的物流仓储和工业制造领域,叉车司机的工作强度逐渐增大,疲劳驾驶的风险也随之提升。因此,我们提出了一套能够准确检测叉车司机疲劳状态的系统,以确保驾驶安全,提高工作效率。 安全监控功能主要透过三颗独立摄…

Git协作

文章目录 Git协作冲突冲突的发生情况解决冲突如何处理冲突 1 分支1.1 什么是Git分支1.2 创建分支 2 切换分支2.1 指向分支2.2 暂存分支切换分支与未提交更改的处理使用 Stash 临时保存更改Stash 的工作原理:场景设定使用 Git Stash 3 远程分支3.1 快进合并快进合并的…