Tensorflow 2.0 常见函数用法(一)

文章目录

  • 0. 基础用法
  • 1. tf.cast
  • 2. tf.keras.layers.Dense
  • 3. tf.variable_scope
  • 4. tf.squeeze
  • 5. tf.math.multiply


0. 基础用法

Tensorflow 的用法不定期更新遇到的一些用法,之前已经包含了基础用法参考这里 ,具体包含如下图的方法:
在这里插入图片描述
本文介绍其他常见的方法。

1. tf.cast

张量类型强制转换

官方用法:

tf.cast(
    x, dtype, name=None
)

示例:

x = tf.constant([1.8, 2.2], dtype=tf.float32)
print(tf.cast(x, tf.int32))

# 输出
tf.Tensor([1 2], shape=(2,), dtype=int32)

2. tf.keras.layers.Dense

构建一个全连接层

在1.0中是 tf.layers.dense ,2.0中可以用下面方法兼容:

import tensorflow.compat.v1 as tf
tf.layers.dense(xxx)

官方用法:

tf.keras.layers.Dense(
    units,
    activation=None,
    use_bias=True,
    kernel_initializer='glorot_uniform',
    bias_initializer='zeros',
    kernel_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    bias_constraint=None,
    **kwargs
)

3. tf.variable_scope

这是 v1 版本的用法,用于管理变量

官方用法:

tf.compat.v1.variable_scope(
    name_or_scope,
    default_name=None,
    values=None,
    initializer=None,
    regularizer=None,
    caching_device=None,
    partitioner=None,
    custom_getter=None,
    reuse=None,
    dtype=None,
    use_resource=None,
    constraint=None,
    auxiliary_name_scope=True
)

示例:

import tensorflow as tf
with tf.variable_scope("one"):
    o=tf.get_variable("f",[1])
with tf.variable_scope("two"):
    o1=tf.get_variable("f",[1])

# 抛错,因为变量的作用范围不一样
# 一个作用域是one/f,一个作用域是two/f
assert o == o1

4. tf.squeeze

从张量的形状中移除大小为1的维度。该函数返回一个张量,这个张量是将原始input中所有维度为1的那些维都删掉的结果。
axis 可以用来指定要删掉的为1的维度,此处要注意指定的维度必须确保其是1,否则会报错。

官方用法:

tf.squeeze(
    input, axis=None, name=None
)

示例:

# 注意,a的shape是1*6,即存在一个大小为1的维度
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[1, 6])
print(a)
b = tf.squeeze(a, [0]) # 删除第0个维度为1的
# b = tf.squeeze(a) 的结果是一样的
print(b)

# 输出
tf.Tensor([[1 2 3 4 5 6]], shape=(1, 6), dtype=int32)
tf.Tensor([1 2 3 4 5 6], shape=(6,), dtype=int32)
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[6, 1])
print(a)
b = tf.squeeze(a, [1])
print(b)

# 输出
tf.Tensor(
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]], shape=(6, 1), dtype=int32)
tf.Tensor([1 2 3 4 5 6], shape=(6,), dtype=int32)
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
print(a)
b = tf.squeeze(a) # 如果不存在大小为1的维度,那么保持不变
print(b)

# 输出
tf.Tensor(
[[1 2 3]
 [4 5 6]], shape=(2, 3), dtype=int32)
tf.Tensor(
[[1 2 3]
 [4 5 6]], shape=(2, 3), dtype=int32)

5. tf.math.multiply

元素相乘

在 1.0 中是 tf.multiply
官方用法:

tf.math.multiply(
    x, y, name=None
)

示例:

a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
print(tf.multiply(a, 2))
print(tf.multiply(a, a))

# 输出
tf.Tensor(
[[ 2  4  6]
 [ 8 10 12]], shape=(2, 3), dtype=int32)

tf.Tensor(
[[ 1  4  9]
 [16 25 36]], shape=(2, 3), dtype=int32)
x = tf.ones([1, 2]);
y = tf.ones([2, 1]);
print(x * y)  # Taking advantage of operator overriding
print(tf.multiply(x, y))

# 输出,如果维度不一致,会尝试匹配维度
tf.Tensor(
[[1. 1.]
 [1. 1.]], shape=(2, 2), dtype=float32)
tf.Tensor(
[[1. 1.]
 [1. 1.]], shape=(2, 2), dtype=float32)

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

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

相关文章

Springboot解决跨域问题方案总结(包括Nginx,Gateway网关等)

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 解决跨域问题方案 1.Spring Boot 中解决跨域 1.1 通过注解跨域 1.2 通…

JavaScript高级(十)----JavaScript中的类【重述原型链】!

类 在JavaScript其实本来没有类的概念,哪怕是ES5以后的class,严格意义上来说也只是构造函数的语法糖,之所以喜欢称之为类,因为JavaScript也可以面向对象开发。 类的声明 class Person {}function Person1() {}// 上面两种写法本…

简单了解JMM

什么是JMM 对于不同的硬件和操作系统,有着自己的底层内存模型,可能导致Java程序在一些的平台可以正确并发,而在另一些平台出现并发错误,JMM是Java内存模型,是语言级别的内存模型,用于屏蔽掉各种硬件和操作…

Activiti7学习大纲及环境-Activiti7从入门到专家(2)

学习大纲 入门系列 开发环境及源码编译流程设计器核心API简单流程示例启动与结束事件边界事件中间事件用户任务手动任务接受任务服务任务脚本任务业务规则任务排他网关并行网关包容网关事件网关子流程调用活动泳池泳道执行监听器任务监听器全局监听器真实业务流程 进阶系列 …

蓝桥杯真题讲解:网络稳定性(Kruskal重构树+LCA)

蓝桥杯真题讲解&#xff1a;网络稳定性&#xff08;Kruskal重构树LCA&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;网络稳定性&#xff08;Kruskal重构树LCA&#xff09; 二、正解代码 //kruskal重构树 lca #include<bits/stdc.h>…

lora-scripts 训练IP形象

CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区&#xff0c;能复现才是好算法https://www.codewithgpu.com/i/Akegarasu/lora-scripts/lora-trainstable-diffusion打造自己的lora模型&#xff08;使用lora-scripts&#xff09;-CSDN博客文章浏览阅读1.1k次…

Springboot+vue的高校实习管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的高校实习管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09…

YOLOV8环境配置精简

AnacondaCUDA_cuDNN的安装这里就不详细介绍了&#xff0c;按照网上的教程基本可用&#xff0c;但是我的难题主要集中在Pycharm新建conda虚拟环境和Yolov8的工程验证上&#xff0c;所以本文记录自己解决问题的过程。 一&#xff0c;Ultralytics官网下载Yolov8源码&#xff0c;解…

stable diffusion 提示词进阶语法-年龄身材肤色-学习小结

stable diffusion 提示词进阶语法-年龄&身材&肤色 前言年龄提示词青年&#xff08;18-25岁&#xff09;幼年、少年&#xff08;1-18&#xff09;中年&#xff08;35-60岁&#xff09;老年&#xff08;65-80岁 老爷爷 老奶奶&#xff09; 身材提示词肤色关键词(人物基础…

Flink中JobManager与TaskManage的运行架构以及原理详解

Flink中JobManager与TaskManage的运行架构详解 整体架构 Flink的运行时架构中&#xff0c;最重要的就是两大组件&#xff1a;作业管理器&#xff08;JobManger&#xff09;和任务管理器&#xff08;TaskManager&#xff09;。对于一个提交执行的作业&#xff0c;JobManager是真…

Flume超级无敌详细讲解

简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志进行收集(collecting)、汇聚(aggregating)和传输(moving)的分布式机制。 图-1 Flume图标 Flume本身提供了较为简易的流式结构,使得开发者能够较为简易和方便的搭建Flume的流动模型。 图-2 Flume…

【管理咨询宝藏56】大型德企业务战略规划报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏56】大型德企业务战略规划报告 【格式】PDF 【关键词】战略规划、商业分析、管理咨询 【核心观点】 - 这是一份非常完整的知名德企在华业务战略…

c++ 三元搜索 - 迭代与递归(Ternary Search)

计算机系统使用不同的方法来查找特定数据。有多种搜索算法&#xff0c;每种算法更适合特定情况。例如&#xff0c;二分搜索将信息分为两部分&#xff0c;而三元搜索则执行相同的操作&#xff0c;但分为三个相等的部分。值得注意的是&#xff0c;三元搜索仅对排序数据有效。在本…

数据分析案例-国际象棋顶级棋手数据可视化分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Spring异步注解@Async线程池配置

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调…

mysql字段多个值,mybatis/mybatis-plus匹配查询

mysql中有一个字段是字符串类型的&#xff0c;category字段值有多个用逗号分割的&#xff0c;例如&#xff1a;娱乐,时尚美妆,美食 。现在想实现这么一个功能&#xff0c; 前端传参 字符串&#xff0c;美食,娱乐。现在想在mybatis的xml中实现&#xff0c;查询&#xff0c;能查到…

Linux基础语法练习题,配有答案,题目内容如下:一、创建文件相关练习题二、文件管理相关练习题三、vim编辑器的练习四、用户管理相关操作

题目内容如下&#xff1a; 一、创建文件相关练习题 二、文件管理相关练习题 三、vim编辑器的练习 四、用户管理相关操作 一、创建文件相关练习题 1.进入根目录&#xff0c;列出当前目录的详细信息 2、在根目录下创建export目录 3.进入export目录&#xff0c;创建data目录 …

基于python+vue反诈科普平台的设计与实现flask-django-php-nodejs

课题主要采用Uni-weixin、django架构技术&#xff0c;前端以小程序页面呈现给用户&#xff0c;结合后台python语言使页面更加完善&#xff0c;后台使用MySQL数据库进行数据存储。微信小程序主要包括用户信息、反诈科普、一键举报、经历上传、交流论坛、科普测试、试题等功能&am…

嵌入式DSP教学实验箱操作教程:2-20 数模转换实验(模拟SPI总线输出电压值)

一、实验目的 掌握GPIO模拟SPI总线的使用&#xff0c;了解AD5724的芯片特性和使用&#xff0c;并实现基于AD5724输出电压值。 二、实验原理 StarterWare StarterWare是一个免费的软件开发包&#xff0c;它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接…

详细分析Python中的enumerate()函数(附多个Demo)

目录 前言1. 基本知识2. Demo 前言 对于Python的基本函数&#xff0c;从实战中获取确切知识 1. 基本知识 enumerate() 接受一个可迭代对象作为输入&#xff0c;并返回一个枚举对象这个枚举对象包含了原始可迭代对象中的每个元素以及对应的索引它允许在循环中同时获取索引和值…