西安企业网站制作,试描述一下网站建设的基本流程图,精准流量推广,石家庄网页设计公司有哪些一、检查本机cuda版本
1、右键找到invdia控制面板 2、找到系统信息 3、点开“组件”选项卡#xff0c; 可以看到cuda版本#xff0c;我们这里是cuda11.7 cuda驱动版本为516.94
二、安装paddlepaddle环境
1、获取pip安装命令 #xff0c;我们到paddlepaddle官网#xff…一、检查本机cuda版本
1、右键找到invdia控制面板 2、找到系统信息 3、点开“组件”选项卡 可以看到cuda版本我们这里是cuda11.7 cuda驱动版本为516.94
二、安装paddlepaddle环境
1、获取pip安装命令 我们到paddlepaddle官网找到cuda对应的安装命令 因为安装 完成paddlepaddle后还需要安装其他依赖所以我们加上 -i 指定国内的pip源
python -m pip install -i https://mirror.baidu.com/pypi/simple paddlepaddle-gpu2.5.1.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html2、在anaconda中新建一个python3.9的环境
conda create -n py39_paddle python3.93、切换conda环境到我们新建的环境
conda activate py39_paddle4、运行pip安装命令
python -m pip install -i https://mirror.baidu.com/pypi/simple paddlepaddle-gpu2.5.1.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.htmlInstalling collected packages: paddle-bfloat, sniffio, protobuf, Pillow, numpy, idna, h11, exceptiongroup, decorator, certifi, astor, opt-einsum, anyio, httpcore, httpx, paddlepaddle-gpu
Successfully installed Pillow-10.0.1 anyio-4.0.0 astor-0.8.1 certifi-2023.7.22 decorator-5.1.1 exceptiongroup-1.1.3 h11-0.14.0 httpcore-0.18.0 httpx-0.25.0 idna-3.4 numpy-1.26.0 opt-einsum-3.3.0 paddle-bfloat-0.1.7 paddlepaddle-gpu-2.5.1.post117 protobuf-3.20.2 sniffio-1.3.0安装成功
三、模型转换
1、安装转换工具paddle2onnx
python -m pip install -i https://mirror.baidu.com/pypi/simple paddle2onnx2.训练模型
import paddle
from paddle.vision.transforms import Normalizetransform Normalize(mean[127.5], std[127.5], data_formatCHW)
# 下载数据集并初始化 DataSet
train_dataset paddle.vision.datasets.MNIST(modetrain, transformtransform)
test_dataset paddle.vision.datasets.MNIST(modetest, transformtransform)# 模型组网并初始化网络
lenet paddle.vision.models.LeNet(num_classes10)
model paddle.Model(lenet)# 模型训练的配置准备准备损失函数优化器和评价指标
model.prepare(paddle.optimizer.Adam(parametersmodel.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())# 模型训练
model.fit(train_dataset, epochs5, batch_size64, verbose1)
# 模型评估
model.evaluate(test_dataset, batch_size64, verbose1)3.环境报错 报错内容 cudnn没有装
4、安装cudnncudatookit参考cudnn安装指导
https://www.notion.so/3a4f57edc6e54e4eaa63ed86234cf533?pvs25
5、训练成功 6、模型转换
# export to ONNX
save_path onnx.save/lenet1 # 需要保存的路径
x_spec paddle.static.InputSpec([None, 1, 28, 28], float32, x) # 为模型指定输入的形状和数据类型支持持 Tensor 或 InputSpec InputSpec 支持动态的 shape。
paddle.onnx.export(lenet, save_path, input_spec[x_spec], opset_version14)成功生成onnx文件
7、检查转换结果没有问题
# 导入 ONNX 库
import onnx
# 载入 ONNX 模型
onnx_model onnx.load(onnx.save/lenet1.onnx)
# 使用 ONNX 库检查 ONNX 模型是否合理
check onnx.checker.check_model(onnx_model)
# 打印检查结果
print(check: , check)
check: None四、模型精度测试
1、paddlepaddle模型推理
import onnxruntime
import numpy as np
img np.random.randn(1, 1, 28, 28).astype(np.float32)
lenet.eval()
paddle_input paddle.to_tensor(img)
pad_output lenet(paddle_input)2、onnx模型推理
ort_session onnxruntime.InferenceSession(onnx.save/lenet1.onnx,providers[CPUExecutionProvider, CUDAExecutionProvider])
model_inputs ort_session.get_inputs()
ort_inputs {model_inputs[0].name: img}
onnx_output ort_session.run([linear_11.tmp_1], ort_inputs)[0]### 3、检查推理 结果
paddle.max(pad_output-onnx_output)
Tensor(shape[], dtypefloat32, placePlace(gpu:0), stop_gradientFalse,0.00000381)