Tensorflow2.0笔记 - Broadcasting和Tile

news2024/11/18 15:41:28

        关于broadcasting的介绍,参考这篇文章。

        https://blog.csdn.net/python_LC_nohtyp/article/details/104097417

import tensorflow as tf
import numpy as np

tf.__version__

#关于broadcasting的介绍,参考这篇文章
#https://blog.csdn.net/python_LC_nohtyp/article/details/104097417

tensor = tf.random.normal([4,32,32,3])
#tensor + [3],[3]可以扩展为[4,32,32,3]后相加
t = tensor + tf.random.normal([3])
print("=========tensor + [3]=======", t.shape)
#tensor +[32,32,1],可以扩展为[4,32,32,3]后相加
t = tensor + tf.random.normal([32,32,1])
print("=========tensor + [32,32,1]=======", t.shape)
#tensor + [4,1,1,1],可以扩展为[4,32,32,3]后相加
t = tensor + tf.random.normal([4,1,1,1])
print("=========tensor + [4,1,1,1]=======", t.shape)
#不使用运算符,使用broadcast_to来扩展维度
b = tf.broadcast_to(tf.random.normal([4,1,1,1]), [4,32,32,3])
print("=========tf.broadcast_to([4,1,1,1], [4,32,32,3])========", b.shape)
#tensor + [1,4,1,1],第二维度不是1,也不是32,无法相加,报错
#t = tensor + tf.random.normal([1,4,1,1])
#print("=========tensor + [1,4,1,1]=======", t.shape)
#InvalidArgumentError: {{function_node __wrapped__AddV2_device_/job:localhost/replica:0/task:0/device:CPU:0}} 
#Incompatible shapes: [4,32,32,3] vs. [1,4,1,1] [Op:AddV2] name: 

#使用tile方式进行复制扩展,tile方式会实际分配内存
tensor = tf.random.uniform([3,4], minval=0, maxval=10, dtype=tf.int32)
print("=========Original tensor======\n", tensor)

#使用broadcasting复制扩展,不会分配内存,但实际效果和tile一样
b = tf.broadcast_to(tensor, [2,3,4])
print("==========Broadcasting========\n", b)

#使用expand_dims扩展一个维度
t = tf.expand_dims(tensor, axis=0)
print("==========After expand_dims:", t.shape)
#使用tile复制第一个维度,参数[2,1,1]表示第一个维度复制两次,后两个维度复制1次(不动)
t1 = tf.tile(t, [2,1,1])
print("After tile:", t1.shape)
print(t1)

        运行结果

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

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

相关文章

【Vue3】3-3 : 组件之间是如何进行互相通信的

本书目录:点击进入 一、组件之间为什么要做通信 二、组件之间通信方式 2.1、父传子:由传递属性实现 stage 1:申明 (即定义) stage 2:注册 stage 3:使用 【示例】:父组件将 tit…

前端动画特效分享(附在线预览)

分享几款不错的动画特效源码 其中有CSS动画、canvas动画、js小游戏等等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 canvas爱心代码动画 爱心代码动画特效 由里向外不断的产生的小爱心形成一个巨大的爱心动画 以下图片…

【前端转安卓】-Java基础知识笔记

常量定义:final public class HelloWorld {// 静态常量public static final double PI 3.14;// 声明成员常量final int y 10;public static void main(String[] args) {// 声明局部常量final double x 3.3;} }变量声明、赋值 String username,address,phone,te…

C for Graphic:Sliced Circle Image

不做UI不知道,没想到时至今日,ugui居然没有sliced filled image模式,用circle做filled,不能用sliced九宫格图,导致每次使用这个效果必须一张新图,何其浪费资源。 原始功能如下: 我…

特征工程-特征处理(三)

特征处理 连续型变量处理(二) 多特征 降维 PCA PCA是一种常见的数据分析方式,通过数据分解,将高维数据降低为低维数据,同时最大程度保持数据中保存的信息。 from sklearn.decomposition import PCA A np.array([[84…

运维体系中的那些Ops们

目录 前言 DevOps DevSecOps GitOps 1、缺少一致性 2、使用成本高 3、鉴权分散 4、审核审计困难 5、不可变基础设施扩展难 DataOps AIOps 总结 前言 提到运维,自然而然会联想到DevOps,大家应该还听说过DataOps、GitOps、DevSecOps、AIOps等…

解决英特尔无线网卡WiFi或者蓝牙突然消失问题

winR,输入“devmgmt.msc”,检查设备管理器中的无线网卡驱动是否安装好。 访问https://www.intel.cn/content/www/cn/zh/download/19351/windows-10-and-windows-11-wi-fi-drivers-for-intel-wireless-adapters.html下载对应系统版本的英特尔无线网卡WiFi…

MC使用Waterfall 跨服

前言 想弄一个跨服,目前这篇文章是边测试边写的,两个子服都是在同一个机器上运行的 如果两个子服在不同的网络,跨服的延迟就会比较高 两个子服 s1 和 s2 都是使用folia核心 版本1.20.1s1 端口: 25565s2 端口 : 25566 1.下载 Waterfall W…

常用植被物候提取方法

(一)Background 这篇文章介绍的非常全面!! 物候的提取通常包含两个步骤:(1)曲线的重构拟合(curve fitting)和 (2)物候矩阵的提取 (p…

数据库概述、部署MySQL服务、必备命令 、密码管理、安装图形软件、SELECT语法 、筛选条件

1 案例1:构建MySQL服务器 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务练习必备命令的使用 1.2 方案 准备2台虚拟机,要求如下: 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:安装软件 命令…

从零学Java 线程安全的集合

线程安全的集合 文章目录 线程安全的集合1 List 和 Set体系Collections中的工具方法1.1 CopyOnWriteArrayList1.2 CopyOnWriteArraySet1.3 ConcurrentHashMap 2 CAS算法3 Queue接口(队列)3.1 ConcurrentLinkedQueue3.2 BlockingQueue接口(阻塞…

进程上下文的概念和切换简单通俗的解释

进程上下文是进程执行活动全过程的静态描述。我们把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为进程上文,把正在执行的指令和数据在寄存器与堆栈中的内容称为进程正文,把待执行的指令和数据在寄存器与堆栈中的内容称为进程下文。 实际上li…

基于杂交PSO算法的风光储微网日前优化调度(MATLAB实现)

微网中包含:风电、光伏、储能、微型燃气轮机,以最小化电网购电成本、光伏风机的维护成本、蓄电池充放电维护成本、燃气轮机运行成本及污染气体治理成本为目标,综合考虑:功率平衡约束、燃气轮机爬坡约束、电网交换功率约束、储能装…

细说JavaScript的数据类型(JavaScript的数据类型详解)

在JavaScript中有六种不同的数据类型,六种数据类型又分为5种简单数据类型(基本数据类型)和1中复杂数据类型(引用数据类型),基本数据类型分为:字符串类型(string)、数值类…

机器学习周刊第六期:哈佛大学机器学习课、Chatbot Ul 2.0 、LangChain v0.1.0、Mixtral 8x7B

— date: 2024/01/08 — 吴恩达和Langchain合作开发了JavaScript 生成式 AI 短期课程:《使用 LangChain.js 构建 LLM 应用程序》 大家好,欢迎收看第六期机器学习周刊 本期介绍10个内容,涉及Python、机器学习、大模型等,目录如下&#xff…

SpringCloud Aliba-Nacos集群配置-从入门到学废【3】

🥚今日鸡汤🥚 修行之路,唯有不断超越自我,方能登上巅峰。 ——《武庚纪》 目录 🌭1.Linu服务器上配置mysql 🥓2.application.properties配置 🧈3.修改集群配置cluster.conf &#x1f9c2…

【复现】金和OA协同管理平台 任意文件上传漏洞_20

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 金和C6协同管理平台包括协同办公管理,人力资源管理,项目管理,客户关系管理,企业目标管理,费用管理,移动办公,微信办公等多个业务范…

python的装饰器详解

目录 一:介绍 二:在方法中使用 三:在类中使用 四:python自带的装饰器 一:介绍 Python的装饰器是一种高阶函数,它允许你在不改变函数内部逻辑的情况下,给函数添加额外的功能。装饰器本质上是…

Python 错误 Valueerror: Expected 2d Array Got 1d Array Instead

如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时。 Python 在使用 numpy 库时有时会遇到数组错误。 当我们在 numpy 中传递一维数组而不是二维数组时,会发生错误 ValueError: Expected 2D array, got 1D a…

机器学习周刊第五期:一个离谱的数据可视化Python库、可交互式动画学概率统计、机器学习最全文档、快速部署机器学习应用的开源项目、Redis 之父的最新文章

date: 2024/01/08 这个网站用可视化的方式讲解概率和统计基础知识,很多内容还是可交互的,非常生动形象。 大家好,欢迎收看第五期机器学习周刊 本期介绍7个内容,涉及Python、概率统计、机器学习、大模型等,目录如下: 一个离谱的Python库看见概率,看见统计2024机器学习最…