张量的分割

简介: 【8月更文挑战第18天】张量的分割。

张量的分割
TensorFlow中,张量分割的操作主要包括:
tf.unstack():将张量按照特定维度分解。
tf.split():将张量按照特定维度划分为指定的分数。

与tf.unstack()相比,tf.split()更佳灵活。
tf.unstack(value,num=None,axis=0,name='unstack'):
value:输入张量;
num:表示输出含有num个元素的列表,num必须和指定维度内元素的个数相等。通常可以忽略不写这个参数。
axis:指明根据数据的哪个维度进行分割;
name:操作名称。

代码:

按照第一个维度对数据进行分解,分解后的数据以列表形式输出。

tf.unstack(stacked_sample_1,axis=0)

输出:
[<tf.Tensor: shape=(100, 100, 3), dtype=float32, numpy=
array([[[ 0.0665694 , 0.7110351 , 1.907618 ],
[ 0.84416866, 1.5470593 , -0.5084871 ],
[-1.9480026 , -0.9899087 , -0.09975405],
...,

tf.split(value, num_or_size_splits, axis=0):
value:输入张量;
num_or_size_splits:准备切成几份
axis:指明根据数据的哪个维度进行分割。

tf.split()的分割方式有两种:

  1. 如果num_or_size_splits 传入的是一个整数,那直接在axis=D这个维度上把张量平均切分成几个小张量。
  2. 如果num_or_size_splits 传入的是一个向量,则在axis=D这个维度上把张量按照向量的元素值切分成几个小张量。

代码:
import numpy as np
split_sample_1 = tf.random.normal([10,100,100,3])
print("原始数据的尺寸为:",split_sample_1.shape)
splited_sample_1 = tf.split(split_sample_1, num_or_size_splits=5,axis=0)
print("当m_or_size_splits=10,分割后数据的尺寸为:",np.shape(splited_sample_1))
splited_sample_2 = tf.split(split_sample_1, num_or_size_splits=[3,5,2],axis=0)
print("当num_or_size_splits=[3,5,2],分割后数据的尺寸分别为:",
np.shape(splited_sample_2[0]),
np.shape(splited_sample_2[1]),
np.shape(splited_sample_2[2]))

输出:
原始数据的尺寸为: (10, 100, 100, 3)
当m_or_size_splits=10,分割后数据的尺寸为: (5, 2, 100, 100, 3)
当num_or_size_splits=[3,5,2],分割后数据的尺寸分别为: (3, 100, 100, 3) (5, 100, 100, 3) (2, 100, 100, 3)

相关文章
|
机器学习/深度学习 编解码 PyTorch
DenseNet的应用--语义分割--(DenseASPP )
转载自:https://blog.csdn.net/u011974639 DenseASPP DenseASPP for Semantic Segmentation in Street Scenes 原文地址:DenseASPP 收录:CVPR2018(IEEE Conference on Computer Vision and Pattern Recognition) 代码: PyTorch 简介: 将DeepLab系列中的ASPP和DenseNet中的密集连接相结合,构成了DenseASPP。
5374 1
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
|
4月前
|
TensorFlow 算法框架/工具 Python
张量的分割
【8月更文挑战第17天】张量的分割。
22 2
|
4月前
|
TensorFlow 算法框架/工具
张量的拼接
【8月更文挑战第18天】张量的拼接。
20 2
|
6月前
|
存储 机器学习/深度学习 PyTorch
Pytorch-张量形状操作
PyTorch中,张量形状操作至关重要,如reshape用于改变维度而不变元素,transpose/permute用于维度交换,view改形状需内存连续,squeeze移除单维度,unsqueeze添加维度。这些函数帮助数据适应神经网络层间的转换。例如,reshape能调整数据适配层的输入,transpose用于矩阵转置或多维排列,而squeeze和unsqueeze则用于处理单维度。理解并熟练运用这些工具是深度学习中必要的技能。
|
6月前
|
算法 PyTorch 算法框架/工具
Pytorch - 张量转换拼接
使用 Tensor.numpy 函数可以将张量转换为 ndarray 数组,但是共享内存,可以使用 copy 函数避免共享。
|
机器学习/深度学习 索引
深度学习基础:标量、向量、矩阵、张量
深度学习基础:标量、向量、矩阵、张量
954 0
深度学习基础:标量、向量、矩阵、张量
|
资源调度 PyTorch 算法框架/工具
pytorch 如何生成指定位置、尺度参数的随机高斯矩阵,并指定这个随机矩阵的形式
在上述代码中,我们使用 torch.normal(mean=mu, std=sigma, size=(m, n)) 函数直接生成了一个形状为 (m, n) 的随机高斯矩阵 data,其中 mean 参数指定了均值,std 参数指定了标准差。 需要注意的是,与 torch.randn() 不同,torch.normal() 生成的是具有指定均值和标准差的高斯分布,因此生成的随机矩阵不一定是标准正态分布。如果需要生成标准正态分布随机矩阵,可以将 mean 参数设置为 0,std 参数设置为 1。
1195 1
|
并行计算 安全 异构计算
pytroch取张量数据
pytroch取张量数据
186 1
pytroch取张量数据
|
PyTorch 算法框架/工具 索引
pytorch中,假设已经有了一个张量a,现在还有一个张量B,张量B为一维的张量,如何利用B张量的元素作为索引去检索a张量的元素?
可以使用PyTorch的索引操作符[]和张量的gather()方法来利用张量B的元素作为索引来检索张量a的元素。
222 0