Tensorflow2.0笔记 - 修改形状和维度

这篇具有很好参考价值的文章主要介绍了Tensorflow2.0笔记 - 修改形状和维度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        本次笔记主要使用reshape,transpose,expand_dim,和squeeze对tensor的形状和维度进行操作。

import tensorflow as tf
import numpy as np

tf.__version__

#tensor的shape和维数获取
#假设下面这个tensor表示4张28*28*3的图片
tensor = tf.random.uniform([4,28,28,3], minval=0, maxval=10, dtype=tf.int32)
print("tensor.shape:", tensor.shape)
print("tensor.ndim:", tensor.ndim)

#reshape成一个三维的tensor,将行和列的信息去掉,只保留pixel概念
print("=======reshape([4,28*28,3].shape=========\n", tf.reshape(tensor, [4,28*28,3]).shape)
#reshape里的参数中可以出现一个-1,表示自动计算省略掉的维度的大小
#还是上面的例子,将行和列的信息去掉,只保留pixel的概念
print("=======reshape([4,-1,3].shape=========\n", tf.reshape(tensor, [4,-1,3]).shape)
#将图片的行和列信息和RGB通道信息去掉,图片数据作为一个整体,等价于tf.reshape(tensor, [4, 28*28*3])
print("=======reshape([4,-1].shape=========\n", tf.reshape(tensor, [4,-1]).shape)

#transpose进行转置操作,会修改tensor的数据布局
tensor = tf.random.uniform([4,3,2,1], minval=0, maxval=9, dtype=tf.int32)
print(tensor.shape,tensor.ndim)
print(tensor)

#不带参数,表示整体转置,对所有维度进行转置
transpose = tf.transpose(tensor)
print("========Transpose without arg:", transpose.shape)
print(transpose)
#带参数,给出perm参数,表示原来的维度放到哪个位置
#第0个和第1个维度保留,交换最后两个维度
transpose = tf.transpose(tensor, perm=[0,1,3,2])
print("========Transpose by arg:", transpose.shape)
print(transpose)

#transpose的一个应用案例
#pytorch中,图片信息一般以[b,c,h,w]来表示,b表示batch数量,c表示像素通道数量,h,w表示图片的高度和宽度
#tensorflow中,图片信息一般以[b,h,w,c]来表示
#可以使用transpose进行pytorch和tensorflow格式的互转
#下面的tensor按照pytorch格式理解,两张5*5*3的图片
tensor = tf.random.uniform([2,3,5,5], minval=0, maxval=9, dtype=tf.int32)
print("=====PYTORCH data=====\n", tensor)
#通过transpose转换为tensorflow格式
transpose = tf.transpose(tensor, [0,2,3,1])
print("=====TENSORFLW data====\n", transpose)

#增加(expand)或减少(squeeze)维度
#假设下面的tensor表示4个班级,10个学生,5门科目的成绩
tensor = tf.random.normal([4,10,5])

#现在我们要增加一个学校的维度,使用expand_dims,会在指定axis的前面增加一个维度
#axis表示要在那个维度前面增加
expanded = tf.expand_dims(tensor, axis=0)
print("Expanded at dim0:", expanded.shape)

#在5门科目成绩维度前增加一个维度
expanded = tf.expand_dims(tensor, axis=2)
print("Expanded at dim2:", expanded.shape)

#在5门科目成绩维度后面增加一个维度
expanded = tf.expand_dims(tensor, axis=3)
print("Expanded at dim3:", expanded.shape)

#axis为负数的时候,和numpy索引给-1的情况是类似的,需要注意的是此时会在指定axis的后面增加一个维度
#在5门科目成绩维度前增加一个维度
expanded = tf.expand_dims(tensor, axis=-2)
print("Expanded at dim2:", expanded.shape)
#在最前面增加一个维度
expanded = tf.expand_dims(tensor, axis=-4)
print("Expanded at dim0:", expanded.shape)

#减少维度,仅用于去掉shape=1的维度,如果指定要去掉的维度shape大于1会报错
tensor = tf.zeros([1,2,1,1,3])
print("tensor.shape:", tensor.shape)
#上面的tensor,只有1个维度的位置可以去掉
squeezed = tf.squeeze(tensor)
print("Squeezed:", squeezed.shape)
#指定某个axis进行squeeze
squeezed = tf.squeeze(tensor, axis=0)
print("Squeezed:", squeezed.shape)
#axis为负数的情况
squeezed = tf.squeeze(tensor, axis=-2)
print("Squeezed:", squeezed.shape)

        运行结果:

Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习

Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习

Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习

Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习

Tensorflow2.0笔记 - 修改形状和维度,TensorFlow2.0,tensorflow,笔记,人工智能,python,计算机视觉,深度学习 文章来源地址https://www.toymoban.com/news/detail-793487.html

到了这里,关于Tensorflow2.0笔记 - 修改形状和维度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Tensorflow2.0笔记 - 不使用layer方式,简单的MNIST训练

            本笔记不使用layer相关API,搭建一个三层的神经网络来训练MNIST数据集。         前向传播和梯度更新都使用最基础的tensorflow API来做。         运行结果:

    2024年01月20日
    浏览(48)
  • tensorflow2基础

    TensorFlow 包含以下特性: 训练流程 数据的处理  :使用 tf.data 和 TFRecord 可以高效地构建和预处理数据集,构建训练数据流。同时可以使用 TensorFlow Datasets 快速载入常用的公开数据集。 模型的建立与调试  :使用即时执行模式和著名的神经网络高层 API 框架 Keras,结合可视化

    2024年02月11日
    浏览(47)
  • tensorflow2 模型建立与训练

    模型的构建:  tf.keras.Model  和  tf.keras.layers 模型的损失函数:  tf.keras.losses 模型的优化器:  tf.keras.optimizer 模型的评估:  tf.keras.metrics Keras 有两个重要的概念:  模型(Model)  和  层(Layer)  。层将各种计算流程和变量进行了封装(例如基本的全连接层,CNN 的卷积层

    2024年02月10日
    浏览(66)
  • tensorflow2模型保存和恢复

    有两种方法可以保存模型: ·使用检查点,一种简单的在硬盘上保存变量的方法 ·使用SavedModel,模型结构及检查点 检查点不包含任何关于模型自身的描述:它们只是一种简单的存储参数并能让开发者正确恢复它的方法。 SavedModel格式在保存参数值的基础上加上了计算过程的序

    2024年02月11日
    浏览(49)
  • TensorFlow2.0教程1-Eager

    2023年11月06日
    浏览(38)
  • Tensorflow2——Eager模式简介以及运用

    TensorFlow的eager执行模式是一个重要的编程环境,它能立即评估运算,而无须构建图:运算会实时返回值,而不是构建一个计算图后再运行。这使得使用TensorFlow和调试模型更简单,并且可以减少很多样板代码。 eager执行模式对研究和实验来说是一个灵活的机器学习平台,有下列

    2024年02月11日
    浏览(54)
  • Tensorflow2 GPU版本-极简安装方式

    1、配置conda环境加速 https://wtl4it.blog.csdn.net/article/details/135723095 https://wtl4it.blog.csdn.net/article/details/135723095 2、tensorflow-gpu安装

    2024年01月21日
    浏览(43)
  • 深入浅出TensorFlow2函数——tf.exp

    分类目录:《深入浅出TensorFlow2函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.exp · 深入浅出TensorFlow2函数——tf.math.exp · 深入浅出Pytorch函数——torch.exp · 深入浅出PaddlePaddle函数——paddle.exp 按元素计算 x x x 的指数 y = e x y=e^x y = e x 。 语法 参数 x :[ tf.Tensor ] 必须

    2024年02月12日
    浏览(32)
  • 深入浅出TensorFlow2函数——tf.reshape

    分类目录:《深入浅出TensorFlow2函数》总目录 语法 参数 返回值 返回一个新的形状为 shape 的 tf.Tensor 且具有与 tensor 以同样的顺序和相同的值。 实例 输入: 如果 shape 的一个参数为是 -1 ,则计算该维度的大小,使总大小保持不变。特别是,若 shape 为 [-1] ,则将 tensor 展平为一

    2024年02月11日
    浏览(59)
  • 深入浅出TensorFlow2函数——tf.rank

    分类目录:《深入浅出TensorFlow2函数》总目录 语法 参数 input : tf.Tensor 或 tf.SparseTensor name :[可选] 操作的名称 返回值 张量 input 的维度,是一个 int32 类型的张量 实例 输入: 输出: 函数实现

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包