当前位置: 首页 > news >正文

淘宝内部卷网站怎么做西部数码域名怎么样

淘宝内部卷网站怎么做,西部数码域名怎么样,网站做app开发工具,photoshop+做网站logo前言 兴趣所向#xff0c;研究一下如何在caffe工程之外建立一个属于自己的工程#xff0c;这里以分类为例#xff0c;将classification.cpp提取出来#xff0c;然后调用相应的三方库和libcaffe.lib进行编译。这里比较建议有一丢丢C功底的同志参考学习#xff0c;主要涉及…前言 兴趣所向研究一下如何在caffe工程之外建立一个属于自己的工程这里以分类为例将classification.cpp提取出来然后调用相应的三方库和libcaffe.lib进行编译。这里比较建议有一丢丢C功底的同志参考学习主要涉及到利用VS新建工程添加lib库文件包含头文件解决dll丢失问题。看完博客可以学会如何不在复制别人的各种路径的情况下依据caffe-windows自行为新建的工程设置调用caffe的路径。 国际惯例贴一堆网址 caffe下新建工程及编译 caffe-window搭建自己的小项目例子 使用libcaffe为工程添加深度学习功能 利用caffe建立自己的工程 caffe C接口使用配置 caffe框架在添加自己的MFC程序(上) 文章结束提供本文编译所用代码。 做这次笔记主要是网上找的方法都有复杂的各种路径的添加包括上面的各个参考博客各种lib不可能每次新建项目我都要打开别人博客然后把所有的lib文件复制下来。在编译caffe-windows的时候大家肯定发现这样一个问题我没有手动加任何路径只需要它自动下载NugetPackages三方库然后就能编译了。这就说明在某个地方肯定定义过路径了编译时候直接调用。这就启发我们找到它按照它 就可以在不看任何博客情况下独立编写路径信息。 【注】方法严格建立在BVLC或者微软的caffe-Windows能够正常使用的情况下由于C还不熟练直接以classification.cpp为例。 建立新工程 创建项目 随便在磁盘某个地方新建一个空文件夹用于存储我们所要新建的工程。 打开VS2013新建一个工程记得选空项目 添加源代码信息 源文件-添加-新建项-classification.cpp将caffe-windows路径(E:\CaffeDev\caffe-master\examples\cpp_classification)里面的classification.cpp的内容拷贝丢到新建的工程中的classification.cpp中去看看配置管理器是什么如果是Win32就改成X64最好是release 这就算是搞定了工程的创建与我们写控制台helloword的步骤完全一样。接下来就是解决各种编译错误了。 逐步解决错误 caffe头文件 首先引入眼帘的是 解决方法加头文件把caffe-windows的include文件夹整体拷贝过来我是放入到sln并列的地方了这个路径与后面要加的路径要对应这是后话 拷贝完毕就去设置头文件的包含目录 三方库头文件 然后出现了更多的错误 不要慌这个地方就是与网上的解决方法的不同之处了当然你也可以按照前言中的博客配置。我这里主要是应对没有联网的无法打开别人博客复制路径的情况。 观察原始caffe-Windows下E:\CaffeDev\caffe-master\windows下的任何一个工程比如compute_image_mean文件夹下的compute_image_mean.vcxproj有兴趣可以搜一下这个vcxproj的文件包含什么信息答案是路径。那么我们就利用这里面的路径去设置自己工程的路径了当然首先是把NugetPackages的三方库拷贝到当前工程下路径自定我的路径如下 然后加入路径的方法就在我们的E:\caffe-myproject\my_classification\my_classification\my_classification.vcxproj中了我这里是对比着原始caffe的compute_image_mean.vcxproj和当前工程的my_classification.vcxproj修改的。我就不分析了直接把关键点列出来 【注意】以下步骤与路径关系很大../是跳转一个目录起始位置是vcxproj所在当前文件夹。 首先是三个props Import Project..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.props ConditionExists(..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.props) /Import Project..\..\NugetPackages\glog.0.3.3.0\build\native\glog.props ConditionExists(..\..\NugetPackages\glog.0.3.3.0\build\native\glog.props) /Import Project..\..\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.props ConditionExists(..\..\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.props) / 随后是CommonSettings.props 如果不加入CommonSettings.props会在后面提示opencv未启用问题为了方便直接把caffe-windows的拷贝CommonSettings.props过来使用 ImportGroup LabelPropertySheets ConditionExists($(SolutionDir)\CommonSettings.props)Import Project..\CommonSettings.props / /ImportGroup 然后是libcaffe.lib ItemDefinitionGroup Condition$(Configuration)|$(Platform)Debug|x64LinkAdditionalDependencieslibcaffe.lib;$(CudaDependencies);%(AdditionalDependencies)/AdditionalDependenciesSubSystemConsole/SubSystem/Link/ItemDefinitionGroupItemDefinitionGroup Condition$(Configuration)|$(Platform)Release|x64LinkAdditionalDependencieslibcaffe.lib;$(CudaDependencies);%(AdditionalDependencies)/AdditionalDependenciesSubSystemConsole/SubSystem/Link 最后是所有的NugetPackage的头文件相关文件包含 ImportGroup LabelExtensionTargetsImport Project..\..\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets ConditionExists(..\..\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets) /Import Project..\..\NugetPackages\OpenBLAS.0.2.14.1\build\native\openblas.targets ConditionExists(..\..\NugetPackages\OpenBLAS.0.2.14.1\build\native\openblas.targets) /Import Project..\..\NugetPackages\glog.0.3.3.0\build\native\glog.targets ConditionExists(..\..\NugetPackages\glog.0.3.3.0\build\native\glog.targets) /Import Project..\..\NugetPackages\hdf5-v120-complete.1.8.15.2\build\native\hdf5-v120.targets ConditionExists(..\..\NugetPackages\hdf5-v120-complete.1.8.15.2\build\native\hdf5-v120.targets) /Import Project..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.targets ConditionExists(..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.targets) /Import Project..\..\NugetPackages\boost_chrono-vc120.1.59.0.0\build\native\boost_chrono-vc120.targets ConditionExists(..\..\NugetPackages\boost_chrono-vc120.1.59.0.0\build\native\boost_chrono-vc120.targets) /Import Project..\..\NugetPackages\boost_date_time-vc120.1.59.0.0\build\native\boost_date_time-vc120.targets ConditionExists(..\..\NugetPackages\boost_date_time-vc120.1.59.0.0\build\native\boost_date_time-vc120.targets) /Import Project..\..\NugetPackages\boost_filesystem-vc120.1.59.0.0\build\native\boost_filesystem-vc120.targets ConditionExists(..\..\NugetPackages\boost_filesystem-vc120.1.59.0.0\build\native\boost_filesystem-vc120.targets) /Import Project..\..\NugetPackages\boost_system-vc120.1.59.0.0\build\native\boost_system-vc120.targets ConditionExists(..\..\NugetPackages\boost_system-vc120.1.59.0.0\build\native\boost_system-vc120.targets) /Import Project..\..\NugetPackages\boost.1.59.0.0\build\native\boost.targets ConditionExists(..\..\NugetPackages\boost.1.59.0.0\build\native\boost.targets) /Import Project..\..\NugetPackages\boost_thread-vc120.1.59.0.0\build\native\boost_thread-vc120.targets ConditionExists(..\..\NugetPackages\boost_thread-vc120.1.59.0.0\build\native\boost_thread-vc120.targets) /Import Project..\..\NugetPackages\boost_python2.7-vc120.1.59.0.0\build\native\boost_python-vc120.targets ConditionExists(..\..\NugetPackages\boost_python2.7-vc120.1.59.0.0\build\native\boost_python-vc120.targets) /Import Project..\..\NugetPackages\protobuf-v120.2.6.1\build\native\protobuf-v120.targets ConditionExists(..\..\NugetPackages\protobuf-v120.2.6.1\build\native\protobuf-v120.targets) /Import Project..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets ConditionExists(..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets) /Import Project..\..\NugetPackages\lmdb-v120-clean.0.9.14.0\build\native\lmdb-v120-clean.targets ConditionExists(..\..\NugetPackages\lmdb-v120-clean.0.9.14.0\build\native\lmdb-v120-clean.targets) //ImportGroup 这几步很容易遇到这样的问题 提示很明显了看看第77行对应的 少了对应的 加上即可。 cuda相关头文件 编译运行发现出现下列错误 这个一看就可能是cuda的问题了文件可以在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include中找到当然不同的安装位置由不同的路径寻找相同的是这个文件一定存在。加入到VS路径中操作同上面加caffe的include一样注意红线部分 拷贝libcaffe 最后一个问题是 原因很简单因为我们上面只加了libcaffe.lib的路径并没有指引它所在地方这个就与你的VS功底有关了详细请看“如何调用C的dll与lib文件”相关博客。我们这里直接把原始的caffe-windows下的release版本的libcaffe.lib拷贝到新建文件夹lib中去路径如下 拷贝进去以后在VS中加入lib所在目录 编译工程 上述步骤都搞定以后重新生成我们的工程 然后设置一下将警告视为错误为否 然后就看到了满意的结果啦 解决dll相关问题 有时候会遇到这个问题有时候不会遇到可以先直接跳过此步骤直接进行分类使用步骤如果出现dll缺失问题再回来添加dll。 方案1 当前编译了不一定能运行还有dll没拷贝呢网上博客说dll的使用方法是将dll拷贝到一个文件夹比如将caffe-windows的release下的所有dll全部拷贝到我们工程的如下新建文件夹中 然后在VS中 但是设置完毕以后还是提示缺少dll以后再试试是不是哪里出问题了 方案2 跟前面一样把编译的caffe-windows下的release文件夹加入到系统环境变量path中去不再赘述因为前面的caffe-Windows配置好像有过这个步骤就是单纯的将E:\CaffeDev\caffe-master\Build\x64\Release加入path仅此而已。 方案3 最简单粗暴的方法上面编译工程完事以后可以发现我们的工程多了个build文件夹那么把所有的dll拷贝到E:\caffe-myproject\Build\x64\Release即可如果你发现这个文件夹中有dll就不用拷贝了应该不会提示缺dll的问题如果还是提示那就拷贝吧如果还是不行自行百度。 分类使用 准备相关文件 使用方法就是先将所有的文件准备好 分别是待分类图片、模型结构、训练好的模型参数、均值、标签。前面cifar的模型建立和使用都介绍过这些东西的生成方法。 【注】按照上述方法完全不会出问题最好最好是在原始的caffe-windows的基础下操作如果是自己改动的caffe-windows的话可能会出现一些不必要的问题。 运行方法-bat形式 老样子直接写bat文件 E:\caffe-myproject\Build\x64\Release\my_classification.exe lenet.prototxt lenet_iter_10000.caffemodel mean.binaryproto synset_words.txt 2.bmp pause 运行出错 F0411 12:20:34.327227 14000 layer_factory.hpp:81] Check failed: registry.count(t ype) 1 (0 vs. 1) Unknown layer type: Input (known types: ) *** Check failure stack trace: *** 此博客【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) 1 (0 vs. 1) Unknown layer type有讲解为什么那么就直接按照方法建立一个head.h #include caffe/common.hpp #include caffe/layers/input_layer.hpp #include caffe/layers/inner_product_layer.hpp #include caffe/layers/dropout_layer.hpp #include caffe/layers/conv_layer.hpp #include caffe/layers/relu_layer.hpp#include caffe/layers/pooling_layer.hpp #include caffe/layers/lrn_layer.hpp #include caffe/layers/softmax_layer.hppnamespace caffe {extern INSTANTIATE_CLASS(InputLayer);extern INSTANTIATE_CLASS(InnerProductLayer);extern INSTANTIATE_CLASS(DropoutLayer);extern INSTANTIATE_CLASS(ConvolutionLayer);REGISTER_LAYER_CLASS(Convolution);extern INSTANTIATE_CLASS(ReLULayer);REGISTER_LAYER_CLASS(ReLU);extern INSTANTIATE_CLASS(PoolingLayer);REGISTER_LAYER_CLASS(Pooling);extern INSTANTIATE_CLASS(LRNLayer);REGISTER_LAYER_CLASS(LRN);extern INSTANTIATE_CLASS(SoftmaxLayer);REGISTER_LAYER_CLASS(Softmax);} 然后在classification.cpp头部引用一下注意是双引号而非尖括号引用以有智能提示为基准 #include head.h 重新编译以后然后运行bat的结果: E:\caffe-myproject\test\mnistE:\caffe-myproject\Build\x64\Release\my_classifica tion.exe lenet.prototxt lenet_iter_10000.caffemodel mean.binaryproto synset_word s.txt 2.bmp ---------- Prediction for 2.bmp ---------- 1.0000 - 2 0.0000 - 0 0.0000 - 3 0.0000 - 1 0.0000 - 4E:\caffe-myproject\test\mnistpause 请按任意键继续. . . 运行方法-修改cpp方法 改一下main函数 int main(int argc, char** argv) {//if (argc ! 6) {// std::cerr Usage: argv[0]// deploy.prototxt network.caffemodel// mean.binaryproto labels.txt img.jpg std::endl;// return 1;//}::google::InitGoogleLogging(argv[0]);argv[1] E:\\caffe-myproject\\test\\cifar\\cifar10_quick.prototxt;argv[2] E:\\caffe-myproject\\test\\cifar\\cifar10_quick_iter_4000.caffemodel.h5;argv[3] E:\\caffe-myproject\\test\\cifar\\mean.binaryproto;argv[4] E:\\caffe-myproject\\test\\cifar\\synset_words.txt;argv[5] E:\\caffe-myproject\\test\\cifar\\dog.jpg;string model_file argv[1];string trained_file argv[2];string mean_file argv[3];string label_file argv[4];Classifier classifier(model_file, trained_file, mean_file, label_file);string file argv[5];std::cout ---------- Prediction for file ---------- std::endl;cv::Mat img cv::imread(file, -1);CHECK(!img.empty()) Unable to decode image file;std::vectorPrediction predictions classifier.Classify(img);/* Print the top N predictions. */for (size_t i 0; i predictions.size(); i) {Prediction p predictions[i];std::cout std::fixed std::setprecision(4) p.second - \ p.first \ std::endl;} } 然后ctrlF5运行结果 后记 一定要不断编译、不断尝试、不断查错、不断修改此外熟能生巧。还有两点强调路径路径路径、原版caffe原版caffe原版caffe 编译方法多种多样上述步骤肯定有不必要的地方后期逐步修改 第一次尝试编译的代码 链接http://pan.baidu.com/s/1i5vBPaP 密码x7ee第二次尝试编译的代码 链接http://pan.baidu.com/s/1skIfYkH 密码w69a 主要相对于第一次编译的代码删除了部分冗余的文件也就是不从原版的caffe-Windows拷贝的东西包括 CommonSettings.targets在my_classification.vcxproj中不需要添加的话语是 ItemGroupClInclude Includehead.h / /ItemGroup 下面这句话删除也没影响 ItemGroupNone Includepackages.config / /ItemGroup
http://www.zqtcl.cn/news/559156/

相关文章:

  • 郑州市建设工程造价信息网站关于工程项目建设的网站
  • 网站做淘宝客收入咋样景区门户网站建设方案
  • 遵义做网站推广西安都有哪些公司
  • 万网建网站流程产品展示网站模板php
  • 新津县建设局网站网站做301
  • 网站域名续费如何建设一个简易网站
  • 网站整体迁移该怎么做wordpress 图片调用api接口
  • 网站获得流量最好的方法是什么 ( )汕头建设学校的网站
  • 网上下载的网站后台安全吗仿系统之家网站源码
  • 网站实名审核高等教材电工学久久建筑网
  • 化学试剂购买网站网站节点加速
  • 桂林城乡建设局网站在线咨询免费
  • 长治网站设计制作网站ps怎么做网站导航内嵌式
  • 网站 橙色前台网站开发
  • 滨海网站建设服务商电子商务网站建设与维护pdf
  • 企业网站建设方案效果h5网页制作app
  • 国内搜索引擎网站免费无线
  • 龙岩做网站价格室内建筑设计
  • 闲鱼上面给人做网站造退款微信登录建设银行网站
  • 无锡网站推广公司网络营销课程设置
  • dede 网站根目录北京好的设计公司
  • 网站关键词重复wordpress 影响力
  • 外包商网站怎么做php网站转移
  • 怎么做自己的网站推广产品企业建站 平台
  • 河北做网站公司网站建设团队扬州
  • 114物流网站怎么做免费注册163免费邮箱申请
  • 做网站要以单位手机发博客wordpress
  • 莆田网站建设莆田seo管理系统培训
  • 有一个网站自己做链接获取朋友位置网站关键词数量减少
  • 毕设网站建设论文小程序开发模板