python如何查看一个张量的尺寸
时间: 2023-09-22 20:14:46 浏览: 105
可以使用TensorFlow的shape属性或者numpy的shape方法来查看张量的尺寸,例如:
import tensorflow as tf
import numpy as np
a = tf.constant([[1, 2], [3, 4]])
print(a.shape) # 输出(2,2)
b = np.array([[1, 2, 3], [4, 5, 6]])
print(np.shape(b)) # 输出(2,3)
相关问题
Python 张量直接乘
在Python的NumPy库中,张量(也称为数组或矩阵)的乘法通常分为两种:点积(元素-wise multiplication)和矩阵乘法。
1. **点积(Element-wise multiplication)**:
如果你需要对两个等尺寸的张量进行逐元素相乘,你可以直接使用`*`运算符。例如:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = a * b
print(result) # 输出 [4 10 18]
```
2. **矩阵乘法(Matrix multiplication)**:
矩阵乘法用于处理二维张量,它遵循特定的规则,即第一个张量的列数必须等于第二个张量的行数。你可以使用`@`运算符或`numpy.dot()`函数来计算:
```python
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
matrix_result = a @ b # 或者 np.dot(a, b)
print(matrix_result) # 输出 [[19 22], [43 50]]
```
随机生成一个5*3的张量,然后使用nn.Liner,nn.ReLU,nn.Sigmod来分别查看输出张量尺寸结果
在PyTorch库中,你可以通过`torch.randn`函数随机生成一个形状为(5, 3)的张量,它代表一个5行3列的矩阵。接下来,我们将使用`nn.Linear`, `nn.ReLU`, 和 `nn.Sigmoid`这三个层对这个张量进行操作,并观察它们各自的输出维度。
首先,导入必要的库并创建一个5x3的张量:
```python
import torch
from torch import nn
# 创建一个随机张量
input_tensor = torch.randn(5, 3)
```
接着,我们应用线性层(Linear):
```python
linear_layer = nn.Linear(3, 4) # 假设输出有4个特征
output_linear = linear_layer(input_tensor)
print("Linear Layer Output Shape:", output_linear.shape)
```
线性层通常不会改变输入的行数,但会改变列数(输出特征的数量)。
然后,ReLU层(Rectified Linear Unit)是一个非线性激活函数,它不会影响维度:
```python
relu_layer = nn.ReLU()
output_relu = relu_layer(output_linear)
print("ReLU Layer Output Shape:", output_relu.shape)
```
ReLU层输出的维度与输入一致。
最后,Sigmoid层也是一个常用的激活函数,同样不会改变维度,但它将所有值压缩到0到1之间:
```python
sigmoid_layer = nn.Sigmoid()
output_sigmoid = sigmoid_layer(output_relu)
print("Sigmoid Layer Output Shape:", output_sigmoid.shape)
```
Sigmoid层输出的形状也保持为5x4。
阅读全文