1.numpy
在实际应用中,.npy文件常用于保存数据集、模型权重和其他NumPy数组。
#使用NumPy读取张量
import numpy as np
# 从文件中加载张量
tensor = np.load('tensor.npy')
# 打印张量的形状和内容
print(tensor.shape)
print(tensor)
---------------------------
#使用NumPy写入张量
import numpy as np
# 创建一个张量
tensor = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 将张量写入文件
np.save('tensor.npy', tensor)
2.pytorch
.pt是PyTorch默认的文件扩展名,用于保存PyTorch模型、张量和其他
#使用PyTorch读取张量
import torch
# 从文件中加载张量
tensor = torch.load('tensor.pt')
# 打印张量的形状和内容
print(tensor.shape)
print(tensor)
------------------------
#使用PyTorch写入张量
import torch
# 创建一个张量
tensor = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 将张量写入文件
torch.save(tensor, 'tensor.pt')
3.加载保存模型参数
-
保存模型参数:使用
torch.save()
函数将模型的参数保存到文件中,例如:torch.save(model.state_dict(), 'model_params.pt')
这里,
model
是已经定义好的模型对象,model.state_dict()
方法可以获得模型当前的参数状态字典,将其保存到名为model_params.pt
的文件中。 -
加载模型参数:使用
torch.load()
函数从文件中加载模型的参数,例如:model.load_state_dict(torch.load('model_params.pt'))
这里,
model
是已经定义好的模型对象,torch.load()
函数从名为model_params.pt
的文件中加载参数,然后使用model.load_state_dict()
方法将参数加载到模型中。 -
整体过程:在加载模型参数之前,我们需要创建一个与先前保存的模型相同体系结构的模型实例。
class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1) self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2) self.conv2 = nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1) self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2) self.fc1 = nn.Linear(128 * 8 * 8, 512) self.fc2 = nn.Linear(512, 10) def forward(self, x): x = F.relu(self.conv1(x)) x = self.pool1(x) x = F.relu(self.conv2(x)) x = self.pool2(x) x = x.view(-1, 128 * 8 * 8) x = F.relu(self.fc1(x)) x = self.fc2(x) return x model = MyModel() # 创建模型实例 model.load_state_dict(torch.load('model_params.pt')) # 加载模型参数 #model是已经定义好的模型对象,torch.load()函数从名为model_params.pt的文件中加载参数,然后使用model.load_state_dict()方法将参数加载到模型中。
在这个示例中,我们首先定义了
MyModel
类来定义我们的模型体系结构。然后我们实例化这个模型类来创建我们的模型实例。最后,我们使用load_state_dict
方法将模型参数加载到模型中。注意:在加载模型参数之前,确保创建的模型与保存参数的模型具有相同的体系结构和超参数。
4.scipy.io
是SciPy库中的一个子模块,提供了读取和写入各种文件格式的函数,包括Matlab的.mat文件
import scipy.io as sio
data = sio.loadmat('data.mat') # 读取.mat文件
--------------------------------------------------------
import scipy.io as sio
import numpy as np
data = np.array([[1, 2], [3, 4]])
sio.savemat('data.mat', {'data': data}) # 保存.mat文件