feat: add Jupyter notebook and main script for tensor operations demonstration
This commit is contained in:
236
5.ipynb
Normal file
236
5.ipynb
Normal file
@ -0,0 +1,236 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": "import torch",
|
||||
"id": "d3cf166c4c1b5e28"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"# 连接操作\n",
|
||||
"A = torch.ones(3, 3)\n",
|
||||
"B = 2 * torch.ones(3, 3)\n",
|
||||
"\n",
|
||||
"C = torch.cat((A, B), 1)\n",
|
||||
"C"
|
||||
],
|
||||
"id": "8995ad1fc7997846"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"# 堆叠操作\n",
|
||||
"A = torch.arange(0, 4)\n",
|
||||
"B = torch.arange(4, 8)\n",
|
||||
"\n",
|
||||
"C = torch.stack((A, B), 1)\n",
|
||||
"C"
|
||||
],
|
||||
"id": "3bc82f18d81a5906"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"# 堆叠操作\n",
|
||||
"A = torch.arange(6).reshape(2, 3)\n",
|
||||
"B = torch.arange(7, 13).reshape(2, 3)\n",
|
||||
"C = torch.stack((A, B), 2)\n",
|
||||
"print(C.shape)\n",
|
||||
"C"
|
||||
],
|
||||
"id": "e33ad7cbb371544b"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"A = torch.tensor([[1, 2], [3, 4]]) # shape = (2, 2)\n",
|
||||
"B = torch.tensor([[5, 6], [7, 8]]) # shape = (2, 2)\n",
|
||||
"\n",
|
||||
"S = torch.stack((A, B), dim=0) # 在最外面添加一个新维度 → shape = (2, 2, 2)\n",
|
||||
"print(S)\n",
|
||||
"S = torch.stack((A, B), dim=1) # 插入第1维 → shape = (2, 2, 2)\n",
|
||||
"print(S)\n",
|
||||
"S = torch.stack((A, B), dim=2) # 插入第2维 → shape = (2, 2, 2)\n",
|
||||
"print(S)"
|
||||
],
|
||||
"id": "3ae1ac55280d699"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"# 切分操作\n",
|
||||
"A = torch.arange(10) + 1\n",
|
||||
"B = torch.chunk(A, 3, 0)\n",
|
||||
"B"
|
||||
],
|
||||
"id": "d05ece3cb5c8b356"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": [
|
||||
"# 切分操作\n",
|
||||
"A = torch.arange(10) + 1\n",
|
||||
"B = torch.split(A, 3, 0)\n",
|
||||
"B"
|
||||
],
|
||||
"id": "e6b4083b682fa47f"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-06-12T11:53:25.664652Z",
|
||||
"start_time": "2025-06-12T11:53:25.653976Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"x = torch.arange(10)\n",
|
||||
"torch.chunk(x, 3)\n",
|
||||
"# 输出:3个 tensor,形状为 [4], [3], [3]"
|
||||
],
|
||||
"id": "b59b47ca78552e94",
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(tensor([0, 1, 2, 3]), tensor([4, 5, 6, 7]), tensor([8, 9]))"
|
||||
]
|
||||
},
|
||||
"execution_count": 36,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"execution_count": 36
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-06-12T11:58:17.374940Z",
|
||||
"start_time": "2025-06-12T11:58:17.367564Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"# 索引操作\n",
|
||||
"A = torch.arange(16).view(4, 4)\n",
|
||||
"torch.index_select(A, 1, torch.tensor([1, 3]))"
|
||||
],
|
||||
"id": "66be63810446009e",
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"tensor([[ 1, 3],\n",
|
||||
" [ 5, 7],\n",
|
||||
" [ 9, 11],\n",
|
||||
" [13, 15]])"
|
||||
]
|
||||
},
|
||||
"execution_count": 53,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"execution_count": 53
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-06-12T12:01:09.454904Z",
|
||||
"start_time": "2025-06-12T12:01:09.448698Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"A = torch.rand(5)\n",
|
||||
"torch.masked_select(A, A > 0.3)"
|
||||
],
|
||||
"id": "75ba3061d9102d3f",
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"tensor([0.5685, 0.4049, 0.4695])"
|
||||
]
|
||||
},
|
||||
"execution_count": 61,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"execution_count": 61
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-06-12T12:08:23.692196Z",
|
||||
"start_time": "2025-06-12T12:08:23.683368Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"# 提取出其中第一行的第一个,第二行的第一、第二个,第三行的最后一个\n",
|
||||
"A = torch.tensor([[4, 5, 7], [3, 9, 8], [2, 3, 4]])\n",
|
||||
"torch.diagonal(A)"
|
||||
],
|
||||
"id": "ae81a2f0efa79d83",
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"tensor([4, 9, 4])"
|
||||
]
|
||||
},
|
||||
"execution_count": 62,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"execution_count": 62
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
17
main.py
17
main.py
@ -2,3 +2,20 @@ import torch
|
||||
import numpy as np
|
||||
|
||||
print(torch.__version__)
|
||||
|
||||
|
||||
A = torch.tensor([[1, 2, 3], [4, 5, 6]]) # shape = (2, 3)
|
||||
|
||||
B0 = torch.stack([A, A], dim=0)
|
||||
print("dim=0:\n", B0)
|
||||
print("shape:", B0.shape)
|
||||
|
||||
B1 = torch.stack([A, A], dim=1)
|
||||
print("dim=1:\n", B1)
|
||||
print("shape:", B1.shape)
|
||||
|
||||
B2 = torch.stack([A, A], dim=2)
|
||||
print("dim=2:\n", B2)
|
||||
print("shape:", B2.shape)
|
||||
|
||||
np.max()
|
||||
Reference in New Issue
Block a user