Tensorflow2.0笔记 - tensor的合并和分割

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

        主要记录concat,stack,unstack和split相关操作的作用

import tensorflow as tf
import numpy as np

tf.__version__

#concat对某个维度进行连接
#假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩
tensor0 = tf.ones([4,35,8])
tensor1 = tf.ones([2,35,8])
#用concat将第0个维度(班级,axis=0)连接起来,结果是一个[6,35,8]的tensor
#表示6个班级35名同学8门成绩的数据
tensor = tf.concat([tensor0, tensor1], axis=0)
print("=========>tf.concat([tensor0, tensor1], axis=0).shape:", tensor.shape)

#在同学维度进行合并,第1个维度,axis=1
#假设下面的tensor0和tensor1分别表示4个班级32名同学的8门成绩和4个班级3个同学8门成绩
tensor0 = tf.ones([4,32,8])
tensor1 = tf.ones([4,3,8])
#concat合并第一个维度,可以理解为,tensor0先收集到了32名同学的8门成绩
#然后补考的3名同学成绩放到了tensor1上,通过concat进行汇总
tensor = tf.concat([tensor0, tensor1], axis=1)
print("=========>tf.concat([tensor0, tensor1], axis=1).shape:", tensor.shape)

#concat对于维度有要求,对于不是指定axis的维度要相等才能concat
#一个[4,35,8]的tensor和一个[3,15,8]的tensor无法进行concat

#concat对某个维度进行连接
#假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩
tensor0 = tf.ones([4,35,8])
tensor1 = tf.ones([2,35,8])
#用concat将第0个维度(班级,axis=0)连接起来,结果是一个[6,35,8]的tensor
#表示6个班级35名同学8门成绩的数据
tensor = tf.concat([tensor0, tensor1], axis=0)
print("=========>tf.concat([tensor0, tensor1], axis=0).shape:", tensor.shape)

#在同学维度进行合并,第1个维度,axis=1
#假设下面的tensor0和tensor1分别表示4个班级32名同学的8门成绩和4个班级3个同学8门成绩
tensor0 = tf.ones([4,32,8])
tensor1 = tf.ones([4,3,8])
#concat合并第一个维度,可以理解为,tensor0先收集到了32名同学的8门成绩
#然后补考的3名同学成绩放到了tensor1上,通过concat进行汇总
tensor = tf.concat([tensor0, tensor1], axis=1)
print("=========>tf.concat([tensor0, tensor1], axis=1).shape:", tensor.shape)

#concat对于维度有要求,对于不是指定axis的维度要相等才能concat
#一个[4,35,8]的tensor和一个[3,15,8]的tensor无法进行concat

#unstack和stack操作相反,会对指定维度进行拆分
tensor = tf.ones([3,4,35,8])

#拆分出3个[4,35,8]的tensor
splited = tf.unstack(tensor, axis=0)
print("==========>tf.unstack(tensor, axis=0).shape:", splited[0].shape, splited[1].shape, splited[2].shape)

#拆分出8个[3,4,35]的tensor
splited = tf.unstack(tensor, axis=3)
print("==========>tf.unstack(tensor, axis=3).shape:", 
      splited[0].shape, splited[1].shape, splited[2].shape,
      splited[3].shape, splited[4].shape, splited[5].shape,
      splited[5].shape, splited[6].shape, splited[7].shape)

#拆分出4个[3,35,8]的tensor
splited = tf.unstack(tensor, axis=1)
print("==========>tf.unstack(tensor, axis=1).shape:", splited[0].shape, splited[1].shape, splited[2].shape, splited[3].shape)

#unstack会固定打散指定维度为1
#split则可以指定这个维度划分的比例,通过num_or_size_splits指定
#看个例子就明白了
tensor = tf.ones([2,4,35,8])
#第3个维度划分为2个4维的两个tensor([2,4,35,4]) --- 8 / 2(num_of_size_splits) = 4
splited = tf.split(tensor, axis=3, num_or_size_splits=2)
print("==========>split(tensor, axis=3, num_or_size_splits=2).shape:", splited[0].shape, splited[1].shape)

#将第3个维度按照2,2,4的比例划分,得到3个tensor
splited = tf.split(tensor, axis=3, num_or_size_splits=[2,2,4])
print("==========>split(tensor, axis=3, num_or_size_splits=2).shape:", splited[0].shape, splited[1].shape, splited[2].shape)

        运行结果:

Tensorflow2.0笔记 - tensor的合并和分割,TensorFlow2.0,tensorflow,笔记,人工智能,python,深度学习

Tensorflow2.0笔记 - tensor的合并和分割,TensorFlow2.0,tensorflow,笔记,人工智能,python,深度学习

Tensorflow2.0笔记 - tensor的合并和分割,TensorFlow2.0,tensorflow,笔记,人工智能,python,深度学习文章来源地址https://www.toymoban.com/news/detail-817357.html

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

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

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

相关文章

  • 有空就学学的实例分割1——Tensorflow2搭建Mask R-CNN实例分割平台

    把Mask RCNN用tensorflow2实现了一遍,至少要跟得上时代对不对。 Mask R-CNN是He Kaiming大神2017年的力作,其在进行目标检测的同时进行实例分割,取得了出色的效果。 其网络的设计也比较简单,在Faster R-CNN基础上,在原本的两个分支上(分类+坐标回归)增加了一个分支进行语义分

    2024年02月20日
    浏览(44)
  • Tensorflow2.0笔记 - 修改形状和维度

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

    2024年01月16日
    浏览(37)
  • Tensorflow2.0笔记 - Broadcasting和Tile

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

    2024年01月20日
    浏览(37)
  • 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日
    浏览(46)
  • 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日
    浏览(37)
  • 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日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包