常见的神经网络权重文件格式及其详细说明

常见的神经网络权重文件格式及其详细说明的表格:

扩展名 所属框架/工具 如何生成 表示内容 使用方法 注意事项
.pt, .pth PyTorch torch.save(model.state_dict(), "model.pt") PyTorch模型的状态字典(权重和参数)或整个模型 加载方式:model.load_state_dict(torch.load("model.pt")) 如果保存整个模型(含结构和权重),可能导致跨设备加载问题。pth通常用于旧版本。
.h5, .hdf5 Keras/TensorFlow model.save("model.h5") 完整的Keras模型(含结构、权重和优化器状态) 加载方式:keras.models.load_model("model.h5") HDF5格式依赖h5py库;部分自定义层可能需要手动定义。
.pkl, .pickle Python通用(如scikit-learn) pickle.dump(model, open("model.pkl", "wb")) 序列化的Python对象(如模型参数或全量模型) 加载方式:model = pickle.load(open("model.pkl", "rb")) 存在安全风险(反序列化恶意代码);建议仅在可信来源使用。
.ckpt TensorFlow 使用tf.train.CheckpointModelCheckpoint回调 TensorFlow检查点文件(模型参数、优化器状态等) 恢复训练:model.load_weights("model.ckpt") 检查点文件包含多个文件(如.index.data-xxx等),需一起保留。
.pb TensorFlow(SavedModel) tf.saved_model.save(model, "model_dir") TensorFlow的计算图结构和权重(Protocol Buffers格式) 加载方式:tf.keras.models.load_model("model_dir")tf.saved_model.load("model_dir") 跨语言兼容性好,支持C++/Java等语言调用。
.onnx ONNX(跨框架标准) torch.onnx.export(model, input, "model.onnx") 跨框架的标准化模型(含结构和权重) 加载工具:ONNX Runtime(ort.InferenceSession("model.onnx"))或其他框架的转换工具 需验证框架支持的操作;可能需调整算子兼容性。
.weights Darknet/YOLO Darknet训练时自动生成(如YOLOv3的yolov3.weights Darknet模型的权重参数,需配合配置文件(.cfg)使用 加载方式:darknet.load_net("yolov3.cfg", "yolov3.weights") 无模型结构信息,必须与对应的.cfg文件匹配使用。
.bin, .safetensors Hugging Face Transformers库 model.save_pretrained("dir")会生成pytorch_model.bin 模型权重文件,通常与配置文件(config.json)配合使用 加载方式:model.from_pretrained("dir") .safetensors是更安全的格式(替代.bin),避免恶意代码注入。
.tflite TensorFlow Lite 转换工具:tf.lite.TFLiteConverter.from_saved_model("model_dir").convert() 轻量化模型,适用于移动端/嵌入式设备 移动端推理:使用TensorFlow Lite的Interpreter API加载。 模型可能经过量化(精度降低但体积减小)。
.params MXNet net.save_parameters("model.params") MXNet模型的权重参数 加载方式:net.load_parameters("model.params") 需预先定义网络结构再加载参数。
.joblib scikit-learn joblib.dump(model, "model.joblib") 序列化后的scikit-learn模型(适用于大文件) 加载方式:model = joblib.load("model.joblib") pickle更高效,但主要服务于传统机器学习模型,少用于神经网络。

使用场景总结

  • 训练/推理用途.pt(PyTorch)、.h5(Keras)、.ckpt(TensorFlow)常用于训练过程中的保存与恢复。
  • 跨框架部署.onnx适合不同框架间的模型转换;.pb(TensorFlow)适合生产环境部署。
  • 嵌入式/移动端.tflite针对移动设备优化。
  • 安全性优先 :优先选择.safetensors替代.pkl.bin
  • 协作与共享.weights+.cfg(YOLO)、saved_model(目录)包含完整信息,便于团队协作。
相关推荐
IT杨秀才几秒前
LangChain框架入门系列(3):数据连接
人工智能·后端·langchain
IT杨秀才1 分钟前
LangChain框架入门系列(2):Hello LangChain
人工智能·后端·langchain
易安说AI2 分钟前
全网精选!14个爆火MCP资源库,让你的AI Agent能力翻倍!
人工智能
KuaFuAI4 分钟前
DeepSeek开源引爆AI Agent革命:应用生态迎来“安卓时刻”
人工智能·开源·agent·deepseek
luoganttcc5 分钟前
开源的自动驾驶模拟器
人工智能·开源·自动驾驶
何双新6 分钟前
L1-7、Prompt 的“调试技巧”
人工智能·prompt
何双新11 分钟前
L1-4、如何写出清晰有目标的 Prompt
大数据·人工智能·prompt
哲讯智能科技14 分钟前
得佳胜&哲讯科技 SAP项目启动会:胶带智造新起点 数字转型新征程
大数据·人工智能
向来痴_24 分钟前
PyTorch 分布式 DistributedDataParallel (DDP)
人工智能·pytorch·分布式