为什么CNN预测函数运行一组图像时更快ImageDataStore单独运行每个图像相比呢?

3视图(30天)
我在这个例子代码
我注意到的一件事是,运行与imageDataStore分类函数( imdsValidation) 多次运行一个图像要快得多。这是一些批处理,使用Matlab向量化加快事情的进程还是内在CNN吗?
YPred =分类(净,imdsValidation);
和一个相关的问题,做codegen或CNNcodegen时,也由此产生的c++代码能够运行多个这样的图片吗?我不能看到一个方法和c++代码输出。

答案(2)

Vineet Joshi
Vineet Joshi 2021年7月20日
正如你所看到的在文档页面 分类——MiniBatchSize 更大mini-batches会导致更快的预测,但需要更多的内存,因此它不是特定于CNN网络。
至于你的第二个问题, CNNcodegen 网络函数只生成代码,如何推断这取决于你的选择。您可以编写代码来sequencially推理网络和c++代码,或者使用多个工人和并行计算等技术使它更快的在一个批处理设置。
希望这是有帮助的。
谢谢
1评论
Eric Louchard
Eric Louchard 2021年7月20日
谢谢你的回复!我一直在做一些实验,发现在4 d阵列的图像利用Matlab的一些并行处理系统。我有另一个问题当我描述结果。
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
我犯了一个64 -深的图像块4 d datacube和比较诗句运行它运行一个图像64次,结果4 d datacube过程快10倍左右。
抽搐
for循环= 1:64
分数= Fastnet_LWIR.predict (imLWIR);
结束
toc
抽搐
分数= Fastnet_LWIR.predict (im4D);
toc
运行时间是0.212989秒。
运行时间是0.023708秒。
所以,知道了这一点,我试图使一个墨西哥人文件使用codegen和一个简单的预测功能和使用args{的(64、64、64,uint8)} 64 4 d datacube深处。
cfg = coder.gpuConfig(墨西哥人);
cfg。TargetLang =“c++”;
cfg。DeepLearningConfig = coder.DeepLearningConfig (“cudnn”);
codegen配置cfg Fastnet_LWIR_predict args {(64, 64, 64,“uint8”)}的报告
这导致一个墨西哥人文件的4 d datacube作为输入,没有一个框架,但同样的速度提高。
然而,在试图让一个c++ dll或自由,我一直得到错误所以我试着cnncodegen工作,但我认为它只是一个调用来预测和不做任何形式的并行处理。我试着“batchsize”, 64年在下面叫cnncodegen。
cnncodegen (Fastnet_LWIR‘targetlib’,‘cudnn’,‘ComputeCapability’,‘6.1’,‘targetparams’,结构(自动调谐,真的,“数据类型”、“FP32”),“batchsize”, 64年,“codegenonly”, 1)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~现在的问题
有办法叫cnncodegen编写c++代码和4 d datacubes工作,利用prallel处理?
这是我得到的错误当试图使用codegen和“自由”
cfg = coder.gpuConfig(“自由”);
cfg。TargetLang =“c++”;
cfg。DeepLearningConfig = coder.DeepLearningConfig (“cudnn”);
codegen配置cfg Fastnet_LWIR_predict args {(64, 64, 64,“uint8”)}的报告
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *开发人员命令提示符v15.5.0 Visual Studio 2017
* *版权(c) 2017年微软公司
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[vcvarsall。蝙蝠]环境初始化:“x64”
微软14.12.25830.2 (R)计划维护实用程序版本
版权(C)微软公司。保留所有权利。
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d BUILDING_TEST_CNN_PREDICTOR - d模型= = test_CNN_predictor - o”MWElementwiseAffineLayer test_CNN_predictor - d模型。obj " D: \ test_CNN_predictor \ \ Fastnet_LWIR \ codegen \ dll MWElementwiseAffineLayer.cpp”
MWElementwiseAffineLayer.cpp
C: \ EngTools \ Microsoft Visual Studio \ \ 2017 \ \专业VC \工具MSVC \ 14.12.25827 \包括\ crtdefs.h(10):致命错误C1083:不能打开包含文件:“corecrt。h:没有这样的文件或目录
NMAKE:致命错误U1077:“C: \ Program Files \ NVIDIA GPU计算工具包\ CUDA \ v10.1 \ bin \学校网站。EXE”:返回代码0 x2的
停止。
2使命令返回一个错误
遇到错误(s)在构建“test_CNN_predictor”:
# # #未能生成所有二进制输出。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
? ? ?构建错误:c++编译器产生的错误。看到构建日志详情。
更多的信息

登录置评。


Eric Louchard
Eric Louchard 2021年7月21日
当我测试codegen,现在我得到这个
明确cfg
cfg = coder.gpuConfig(“自由”);
cfg。TargetLang =“c++”;
cfg。DeepLearningConfig = coder.DeepLearningConfig (“cudnn”);
codegen配置cfg Fastnet_LWIR_predict args {(64、64、1、uint8)}的报告
警告:验证警告(s):
下面的宏(s)在构建配置选项没有发现在宣布的工具链宏和列表
标准代码生成的宏:
conlibs
如果上述宏观(s)不是在调用makefile时,定义构建可能会失败。
>在coder.make.ToolchainInfo /验证
在coder.make.invokeBuilder
在coder.make.invokeBuilder
在环球套票。genMakefileAndBuild(第458行)
在coder.internal.doCompile
在emcBuildRTW
在emcBuildRTW
在emcGenMakefileAndBuild
在emcGenMakefileAndBuild
在emcBuildTarget
在emlcprivate
在coder.internal.compile
在emlckernel
在emlckernel
在emlckernel
在emlcprivate
在codegen
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *开发人员命令提示符v15.5.0 Visual Studio 2017
* *版权(c) 2017年微软公司
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[vcvarsall。蝙蝠]环境初始化:“x64”
微软14.12.25830.2 (R)计划维护实用程序版本
版权(C)微软公司。保留所有权利。
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWElementwiseAffineLayer Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWElementwiseAffineLayer.cpp”
MWElementwiseAffineLayer.cpp
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWFusedConvReLULayer Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWFusedConvReLULayer.cpp”
MWFusedConvReLULayer.cpp
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”cnn_api Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ cnn_api.cpp”
cnn_api.cpp
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWCNNLayerImpl Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWCNNLayerImpl.cu”
MWCNNLayerImpl.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWElementwiseAffineLayerImpl Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWElementwiseAffineLayerImpl.cu”
MWElementwiseAffineLayerImpl.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWElementwiseAffineLayerImplKernel Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWElementwiseAffineLayerImplKernel.cu”
MWElementwiseAffineLayerImplKernel.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWFusedConvReLULayerImpl Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWFusedConvReLULayerImpl.cu”
MWFusedConvReLULayerImpl.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWTargetNetworkImpl Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWTargetNetworkImpl.cu”
MWTargetNetworkImpl.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”Fastnet_LWIR_predict_rtwutil Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ Fastnet_LWIR_predict_rtwutil.cu
Fastnet_LWIR_predict_rtwutil.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”Fastnet_LWIR_predict_data Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ Fastnet_LWIR_predict_data.cu
Fastnet_LWIR_predict_data.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”Fastnet_LWIR_predict_initialize Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ Fastnet_LWIR_predict_initialize.cu
Fastnet_LWIR_predict_initialize.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”Fastnet_LWIR_predict_terminate Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ Fastnet_LWIR_predict_terminate.cu
Fastnet_LWIR_predict_terminate.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”Fastnet_LWIR_predict Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ Fastnet_LWIR_predict.cu
Fastnet_LWIR_predict.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”DeepLearningNetwork Fastnet_LWIR_predict - d模型。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ DeepLearningNetwork.cu
DeepLearningNetwork.cu
学校网站- c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero”o3拱sm_35 - d MW_CUDA_ARCH = 350 = = Fastnet_LWIR_predict Fastnet_LWIR_predict - d模型- o - d模型”预测。obj“D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ predict.cu
predict.cu
nvcc - c -Xcompiler / wd 4819“-Xcompiler“/ MD”rdc = true -Xcudafe”——display_error_number——diag_suppress = unsigned_compare_with_zero o3拱sm_35 - d MW_CUDA_ARCH = 350 - d模型= = Fastnet_LWIR_predict - o”MWCudaDimUtility Fastnet_LWIR_predict - d模型。obj " D: \ Fastnet_LWIR \ codegen \ lib \ Fastnet_LWIR_predict \ MWCudaDimUtility.cu”
MWCudaDimUtility.cu
cmd是不被认为是内部或外部命令,
可操作的程序或批处理文件。
NMAKE:致命错误U1077:“cmd”:返回代码0 x1的
停止。
2使命令返回一个错误
遇到错误(s)在构建“Fastnet_LWIR_predict”:
# # #未能生成所有二进制输出。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
? ? ?构建错误:c++编译器产生的错误。看到构建日志详情。
更多的信息
代码生成失败:错误报告
错误使用codegen

类别

找到更多的在深度学习GPU编码器帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!