Comments (7)
你好,关于fp16的resnet推理,请参考这个demo:https://github.com/PaddlePaddle/Paddle-Inference-Demo/tree/master/c%2B%2B/gpu/gpu_fp16
from paddle.
你好,关于fp16的resnet推理,请参考这个demo:https://github.com/PaddlePaddle/Paddle-Inference-Demo/tree/master/c%2B%2B/gpu/gpu_fp16
大佬,只能用C++做推理吗?没有Python的API接口来进行推理吗?
from paddle.
@vivienfanghuagood 大佬,这个问题还能解答一下吗,我发现这里没法跑fp16的原因应该是type不统一,python上详细的接口提供吗?
from paddle.
你好,关于fp16的resnet推理,请参考这个demo:https://github.com/PaddlePaddle/Paddle-Inference-Demo/tree/master/c%2B%2B/gpu/gpu_fp16
大佬,只能用C++做推理吗?没有Python的API接口来进行推理吗?
有的,python端的demo: https://github.com/PaddlePaddle/Paddle-Inference-Demo/blob/master/python/gpu/resnet50/infer_resnet.py#L34
from paddle.
from paddle.
@vivienfanghuagood 感谢,可以转换出fp16的模型,但又有一个问题,我没法通过paddle.jit.load来加载这个模型吗:
# download resnet model
if not os.path.exists("ResNet50_infer"):
os.system("wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/inference/ResNet50_infer.tar && tar -xf ResNet50_infer.tar && rm -rf ResNet50_infer.tar")
# generate fp16 model
path = "ResNet50_infer"
src_model = os.path.join(path,"inference.pdmodel")
src_params = os.path.join(path,"inference.pdiparams")
dst_model = os.path.join(path,"inference_fp16.pdmodel")
dst_params = os.path.join(path,"inference_fp16.pdiparams")
black_list = set()
convert_to_mixed_precision(
src_model, # fp32模型文件路径
src_params, # fp32权重文件路径
dst_model, # 混合精度模型文件保存路径
dst_params, # 混合精度权重文件保存路径
PrecisionType.Half, # 转换精度,如 PrecisionType.Half
PlaceType.GPU, # 后端,如 PlaceType.GPU
False, # 保留输入输出精度信息,若为 True 则输入输出保留为 fp32 类型,否则转为 precision 类型
black_list # 黑名单列表,哪些 op 不需要进行精度类型转换
)
# paddle.set_device("gpu")
path_fp16 = os.path.join(path, "inference_fp16")
print(f"path_fp16: {path_fp16}")
model = paddle.jit.load(path_fp16)
model.eval()
报错如下:
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/decorator.py:232: in fun
return caller(func, *(extras + args), **kw)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/wrapped_decorator.py:26: in __impl__
return wrapped_func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/framework.py:593: in __impl__
return func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/api.py:1584: in load
return TranslatedLayer._construct(model_path, config)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/decorator.py:232: in fun
return caller(func, *(extras + args), **kw)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/wrapped_decorator.py:26: in __impl__
return wrapped_func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/framework.py:593: in __impl__
return func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/translated_layer.py:1444: in _construct
persistable_vars = _construct_params_and_buffers(
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/translated_layer.py:874: in _construct_params_and_buffers
var_dict = _load_persistable_vars_by_program(
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/translated_layer.py:714: in _load_persistable_vars_by_program
all_var_names = _get_all_var_names(program_holder.train_program)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/dy2static/partial_program.py:110: in __get__
val = self.function(instance)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/translated_layer.py:389: in train_program
return self._append_backward_desc(self._infer_program_desc)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/decorator.py:232: in fun
return caller(func, *(extras + args), **kw)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/wrapped_decorator.py:26: in __impl__
return wrapped_func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/dygraph/base.py:68: in __impl__
return func(*args, **kwargs)
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/jit/translated_layer.py:604: in _append_backward_desc
grad_info_map = backward.calc_gradient_helper(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
targets = [], inputs = [], target_gradients = [], no_grad_set = None
def calc_gradient_helper(
targets, inputs, target_gradients=None, no_grad_set=None
):
'''
Calculate gradient and return grad_info_map
'''
targets = _as_list(targets)
inputs = _as_list(inputs)
target_gradients = _as_list(target_gradients)
> block = targets[0].block
E IndexError: list index out of range
/root/miniconda3/envs/paddle_onnx/lib/python3.9/site-packages/paddle/base/backward.py:2472: IndexError
看上去没反向信息就不能加载了
from paddle.
@vivienfanghuagood 感谢,已经没有问题了。
from paddle.
Related Issues (20)
- paddleocr使用两个控制台训练,输出内容相同 HOT 2
- 请教:paddlepaddle的源码能编译支持国产银河麒麟ARM架构+英伟达显卡的硬件环境吗?哪一个版本的代码开始支持? HOT 16
- 寒武纪飞桨基础健康检查报错libmluops.so.1: cannot open shared object file: No such file or directory HOT 4
- x2paddle.convert.onnx2paddle没有生成任何东西 HOT 6
- [CodeStyle][Ruff] Ruff 新 rule 引入计划(第二期) HOT 13
- 昇腾910上taskflow调用UTC推理速度特别慢 HOT 8
- Multiple discrepancies in paddle==2.6.1 vs numpy in python 3.10 HOT 3
- 单机多卡模型在训练过程中使用SyncBatchNorm报错 HOT 17
- test_jit_save_load failure on Paddle v2.6.1 HOT 1
- float 减tensor 计算结果不对 HOT 1
- 【GPU矩阵乘法精度损失】与PyTorch和Numpy对比测试 HOT 4
- 【PyTorch模型迁移】Conv2D前向精度损失
- paddle inference library for CUDA11.8 link not working HOT 2
- 屏幕截图出来的字,黑字白底,60像素高,非常清晰,但paddle除识别出本字以外,还会有各种多余的字 HOT 1
- PaddlePaddle安装PaddlePaddle,使用import paddle导入出现Illegal instruction HOT 8
- 【Conv2D的前向结果在CPU和GPU上存在差异】 HOT 5
- Paddle Build error
- 树莓派5编译失败
- collate_fn函数什么时候支持GPU操作
- FatalError: `Process abort signal` is detected by the operating system. HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from paddle.