#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:cong
@time: 2024/08/15
@project: Movement_Classification
@theme:test_conv1d
"""
import torch
from torch import nn
data = torch.ones((4,4,4))*2
data[0,0] = torch.tensor([1,2,3,4])
conv = nn.Conv1d(in_channels=4, out_channels=1, kernel_size=3, padding=0,bias=False)
with torch.no_grad():
conv.weight = nn.Parameter(torch.ones((1,4,3)))
output = conv(data)
w = conv.weight[0,0]
x= data[0,0][:3]
y = w*x
卷积的输出通道是多少,代表会产生多少个特征图;
1. 张量的基本概念
- 标量(0D Tensor):一个单一的数值,例如
5
或3.14
。 - 向量(1D Tensor):一组有序的数值,可以看作一维数组,例如
[1, 2, 3]
,这是一个一维张量。 - 矩阵(2D Tensor):一组二维的数值表,例如
[[1, 2], [3, 4], [5, 6]]
,这是一个二维张量。 - 三维张量(3D Tensor):一组三维的数据,可以看作多张矩阵的集合。每一个维度都有多个元素。
2. 三维张量的结构
三维张量可以理解为包含多个矩阵的集合,这些矩阵堆叠在一起。三维张量的形状通常表示为 (D1, D2, D3)
,其中:
D1
表示张量在第一个维度上的大小(或深度),即有多少个矩阵。D2
表示张量在第二个维度上的大小(或行数),即每个矩阵有多少行。D3
表示张量在第三个维度上的大小(或列数),即每个矩阵有多少列。