failed to inference resnet50 example on GPU
Created by: jeng1220
- PaddlePaddle version: 1.5.2
- CPU: Intel i7
- GPU: NVIDIA V100, CUDA 10, cuDNN 7.5.0, TensorRT 5.1 GA
- OS Platform: hub.baidubce.com/paddlepaddle/paddle:1.5.2-gpu-cuda10.0-cudnn7 (the docker image was downloaded from here)
$ nvidia-docker pull hub.baidubce.com/paddlepaddle/paddle:1.5.2-gpu-cuda10.0-cudnn7
- Python version: 2.7
To Reproduce
Follow the instructions provided by PaddlePaddle official website to download the model and run the code - resnet50_infer.py
:
$ python resnet50_infer.py --model_file ./model/model --params_file ./model/params
All needed files can be found at here
Describe current behavior It threw:
Traceback (most recent call last):
File "./resnet50_infer.py", line 51, in <module>
main()
File "./resnet50_infer.py", line 22, in main
inputs = fake_input(args.batch_size)
File "./resnet50_infer.py", line 39, in fake_input
image = PaddleTensor(data)
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
1. paddle.fluid.core_avx.PaddleTensor()
If replaced config.disable_gpu()
with config.enable_use_gpu(100, 0)
, then it threw same error message either and NO GPU kernel was invoked (used nsight-system to check it).
Code to reproduce the issue
import argparse
import numpy as np
from paddle.fluid.core import PaddleTensor
from paddle.fluid.core import AnalysisConfig
from paddle.fluid.core import create_paddle_predictor
def main():
args = parse_args()
# set AnalysisConfig
config = AnalysisConfig(args.model_file, args.params_file)
#config.disable_gpu()
config.enable_use_gpu(100, 0)
# create PaddlePredictor
predictor = create_paddle_predictor(config)
# set input
inputs = fake_input(args.batch_size)
# inference
outputs = predictor.run(inputs)
output_num = 512
# get output
output = outputs[0]
print(output.name)
output_data = output.as_ndarray() #return numpy.ndarray
assert list(output_data.shape) == [args.batch_size, output_num]
for i in range(args.batch_size):
print(np.argmax(output_data[i]))
def fake_input(batch_size):
shape = [batch_size, 3, 318, 318]
data = np.random.randn(*shape).astype(np.float32)
image = PaddleTensor(data)
return [image]
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--model_file", type=str, default="model/model", help="model filename")
parser.add_argument("--params_file", type=str, default="model/params", help="parameter filename")
parser.add_argument("--batch_size", type=int, default=1, help="batch size")
return parser.parse_args()
if __name__ == "__main__":
main()
Other info / logs