python debug run 结果不同_Pytorch evaluation每次运行结果不同的解决

本文针对Pytorch中使用Dropout层导致每次evaluation结果不一致的问题进行了深入探讨。通过调试发现,在测试阶段,Dropout层会随机丢弃部分节点,从而造成结果波动。为解决此问题,可以通过调用.eval()方法来关闭Dropout的随机行为。
部署运行你感兴趣的模型镜像

这两天跑测试图时,发现用同样的model,同样的测试图,每次运行结果不同;

经过漫长的debug发现,在net architure中有dropout,如下(4):

(conv_block): Sequential(

(0): ReflectionPad2d((1, 1, 1, 1))

(1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1))

(2): InstanceNorm2d(256, eps=1e-05, momentum=0.1, affine=False)

(3): ReLU(inplace)

(4): Dropout(p=0.5)

(5): ReflectionPad2d((1, 1, 1, 1))

(6): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1))

(7): InstanceNorm2d(256, eps=1e-05, momentum=0.1, affine=False)

)

在跑evaluation的时候,因为dropout的存在,每次运行会随机丢一些中间结果,从而导致最终结果有差异;

可以在evaluation过程中,使用eval() class强制丢掉random的内容,code如下:

self.fake_B = self.netG.eval().forward(self.real_A)

以上这篇Pytorch evaluation每次运行结果不同的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

(pytorch) PS D:\Python_Programs\High-Rank_RGB-Event_Tracker-main\HRMonTrack\Base\pytracking> python .\run_video.py dimp prdimp18 D:\Python_Programs\High-Rank_RGB-Event_Tracker-main\uav0.avi Traceback (most recent call last): File ".\run_video.py", line 38, in <module> main() File ".\run_video.py", line 34, in main run_video(args.tracker_name, args.tracker_param,args.videofile, args.optional_box, args.debug, args.save_results) File ".\run_video.py", line 20, in run_video tracker.run_video(videofilepath=videofile, optional_box=optional_box, debug=debug, save_results=save_results) File ".\..\pytracking\evaluation\tracker.py", line 245, in run_video params = self.get_parameters() File ".\..\pytracking\evaluation\tracker.py", line 662, in get_parameters param_module = importlib.import_module('pytracking.parameter.{}.{}'.format(self.name, self.parameter_name)) File "D:\ProgramData\Anaconda3\envs\pytorch\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked ModuleNotFoundError: No module named 'pytracking.parameter.dimp'
06-17
(pytracking) shen@WP:~/code/pytracking/pytracking$ python run_video.py dimp dimp50 ./1.mp4 Using /home/shen/.cache/torch_extensions/py37_cu117 as PyTorch extensions root... Detected CUDA files, patching ldflags Emitting ninja build file /home/shen/.cache/torch_extensions/py37_cu117/_prroi_pooling/build.ninja... Building extension module _prroi_pooling... Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N) [1/3] /home/shen/miniconda3/envs/pytracking/lib/cuda/bin/nvcc -DTORCH_EXTENSION_NAME=_prroi_pooling -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/TH -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/THC -isystem /home/shen/miniconda3/envs/pytracking/lib/cuda/include -isystem /home/shen/miniconda3/envs/pytracking/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 --compiler-options '-fPIC' -std=c++14 -c /home/shen/code/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu_impl.cu -o prroi_pooling_gpu_impl.cuda.o FAILED: prroi_pooling_gpu_impl.cuda.o /home/shen/miniconda3/envs/pytracking/lib/cuda/bin/nvcc -DTORCH_EXTENSION_NAME=_prroi_pooling -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/TH -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/THC -isystem /home/shen/miniconda3/envs/pytracking/lib/cuda/include -isystem /home/shen/miniconda3/envs/pytracking/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 --compiler-options '-fPIC' -std=c++14 -c /home/shen/code/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu_impl.cu -o prroi_pooling_gpu_impl.cuda.o /bin/sh: 1: /home/shen/miniconda3/envs/pytracking/lib/cuda/bin/nvcc: not found [2/3] c++ -MMD -MF prroi_pooling_gpu.o.d -DTORCH_EXTENSION_NAME=_prroi_pooling -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/TH -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/THC -isystem /home/shen/miniconda3/envs/pytracking/lib/cuda/include -isystem /home/shen/miniconda3/envs/pytracking/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -c /home/shen/code/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu.c -o prroi_pooling_gpu.o FAILED: prroi_pooling_gpu.o c++ -MMD -MF prroi_pooling_gpu.o.d -DTORCH_EXTENSION_NAME=_prroi_pooling -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/TH -isystem /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/THC -isystem /home/shen/miniconda3/envs/pytracking/lib/cuda/include -isystem /home/shen/miniconda3/envs/pytracking/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -c /home/shen/code/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu.c -o prroi_pooling_gpu.o In file included from /home/shen/code/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu.c:15: /home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/include/ATen/cuda/CUDAContext.h:5:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录 5 | #include <cuda_runtime_api.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. ninja: build stopped: subcommand failed. Traceback (most recent call last): File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1906, in _run_ninja_build env=env) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/subprocess.py", line 512, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "run_video.py", line 38, in <module> main() File "run_video.py", line 34, in main run_video(args.tracker_name, args.tracker_param,args.videofile, args.optional_box, args.debug, args.save_results) File "run_video.py", line 20, in run_video tracker.run_video_generic(videofilepath=videofile, optional_box=optional_box, debug=debug, save_results=save_results) File "../pytracking/evaluation/tracker.py", line 395, in run_video_generic out = tracker.track(frame, info) File "../pytracking/evaluation/multi_object_wrapper.py", line 165, in track out = self.trackers[obj_id].initialize(image, init_info_split[obj_id]) File "../pytracking/tracker/dimp/dimp.py", line 84, in initialize self.init_classifier(init_backbone_feat) File "../pytracking/tracker/dimp/dimp.py", line 574, in init_classifier compute_losses=plot_loss) File "../ltr/models/target_classifier/linear_filter.py", line 94, in get_filter weights = self.filter_initializer(feat, bb) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl return forward_call(*input, **kwargs) File "../ltr/models/target_classifier/initializer.py", line 164, in forward weights = self.filter_pool(feat, bb) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl return forward_call(*input, **kwargs) File "../ltr/models/target_classifier/initializer.py", line 45, in forward return self.prroi_pool(feat, roi1) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl return forward_call(*input, **kwargs) File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/prroi_pool.py", line 28, in forward return prroi_pool2d(features, rois, self.pooled_height, self.pooled_width, self.spatial_scale) File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/functional.py", line 44, in forward _prroi_pooling = _import_prroi_pooling() File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/functional.py", line 33, in _import_prroi_pooling verbose=True File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1296, in load keep_intermediates=keep_intermediates) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1518, in _jit_compile is_standalone=is_standalone) File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1626, in _write_ninja_file_and_build_library error_prefix=f"Error building extension '{name}'") File "/home/shen/miniconda3/envs/pytracking/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1916, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error building extension '_prroi_pooling'
最新发布
08-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值