caffe2与Detectron安装及使用教程

本文提供了一份详细的Caffe2与Detectron安装教程,包括环境配置、依赖安装及解决常见错误等内容。

caffe2与Detectron已经放出很久,但由于相关教程较少,并且代码不稳定,一直没有使用,但伴随着相关开源代码增多,不得已安装与学习,做个简要的教程。

step1:

   caffe2安装(caffe2的安装比较麻烦,有可能会出现各种问题):

   主要环境要求:python2,cuda-8.0,cudnn6.0,Ubuntu16.04 ,按照装caffe的传统方式安装显卡驱动,cuda8与cudnn6即可。

   安装官网:

https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile

安装官网中提供了具体的安装步骤,其中在Install with GPU Support一节中提供了安装cuda以及cudnn的方法。

安装依赖:

sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev \
      libopencv-dev \
      libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc \
      protobuf-compiler \
      python-dev \
      python-pip                          
sudo pip install \
      future \
      numpy \
      protobuf

 

sudo apt-get install -y --no-install-recommends libgflags-dev

 

  下载代码并安装:

git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch

  这个过程会比较长,会下载很多东西在third_party文件夹下。

git submodule update --init
mkdir build && cd build
cmake ..
sudo make install 

Tips :在cmake之前以及cmake .. 之后,可利用ccmake .  指令查看编译选项,利用sudo apt-get install cmake-curses-gui 安装

               ccmake指令,然后利用ccmake .   查看编译选项以及路径是否正确。

            如果不想或没有超级用户权限,可在将sudo make install 变为 make 指令,然后在~/.bashrc里添加必要的路径信息

            在 ~/.bashrc里添加如下内容:

export PYTHONPATH=/path_to_pytorvh/pytorch/build:$PYTHONPATH
export PATH=/path_to_pytorch/pytorch/build/bin:$PATH
export LIBRARY_PATH=$LIBRARY_PATH:/path_to_pytorvh/pytorch/build/lib:$LIBRARY_PATH

             注意修改上面的路径,之后 source ~/.bashrc使其生效。

可能会出现的错误:

安装过程中有可能会报出以下错误:

/usr/local/cuda/include/crt/common_functions.h:64:24: error: token ""__CUDACC_VER__ is no longer supported.  Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."" is not valid in preprocessor expressions

报这个错误的原因是eigen的版本的问题,编译的过程中会首先寻找系统中的eigen,但系统中的版本有可能不合适,其实在third_party中已经有了,解决这个问题,只需要修改相关的cmake文件即可。

进入cmake文件夹,打开Dependencies.cmake文件,修改以下部分:

if(BUILD_CAFFE2)
  # Due to license considerations, we will only use the MPL2 parts of Eigen.
  set(EIGEN_MPL2_ONLY 1)
  message(STATUS "Did not find system Eigen. Using third party subdirectory.")
  set(EIGEN3_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/eigen)
  ##$$$$$$$$$%%%%CHANGED$%$%$%$%$^$

  #find_package(Eigen3)

  #if(EIGEN3_FOUND)
  #  message(STATUS "Found system Eigen at " ${EIGEN3_INCLUDE_DIR})
  #else()
  #  message(STATUS "Did not find system Eigen. Using third party subdirectory.")
  #  set(EIGEN3_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/eigen)
  #endif()
  include_directories(${EIGEN3_INCLUDE_DIR})
endif()

如果在编译的过程中报里nccl与libcudart.so.8的错误,在 ~/.bashrc里添加如下内容:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64

  之后source ~/.bashrc 使其生效。到这里基本没有什么问题了。 

 检查是否安装正确,打开python,执行 from caffe2.python import core, 如果报出以下错误:

File "caffe2/proto/caffe2_pb2.py", line 23, in <module>
    t\x12\x17\n\x0freport_interval\x18\x08 \x01(\x05\x12\x14\n\x0crun_every_ms\x18\x0b \x01(\x03\x12\x1b\n\x13\x63oncurrent_substeps\x18\x06 \x01(\x08\x12\x18\n\x10should_stop_blob\x18\t \x01(\t\x12\x11\n\tonly_once\x18\n \x01(\x08\x12\x18\n\x10\x63reate_workspace\x18\x0c \x01(\x08\x12 \n\x18num_concurrent_instances\x18\r \x01(\x05\"g\n\x07PlanDef\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x07network\x18\x02 \x03(\x0b\x32\x0e.caffe2.NetDef\x12-\n\x0e\x65xecution_step\x18\x03 \x03(\x0b\x32\x15.caffe2.ExecutionStep\"\xba\x01\n\tBlobProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12#\n\x06tensor\x18\x03 \x01(\x0b\x32\x13.caffe2.TensorProto\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\x0c\x12%\n\x07qtensor\x18\x05 \x01(\x0b\x32\x14.caffe2.QTensorProto\x12\x1a\n\x12\x63ontent_num_chunks\x18\x06 \x01(\x05\x12\x18\n\x10\x63ontent_chunk_id\x18\x07 \x01(\x05\"K\n\rDBReaderProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x62_type\x18\x03 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t*\x90\x01\n\nDeviceType\x12\x07\n\x03\x43PU\x10\x00\x12\x08\n\x04\x43UDA\x10\x01\x12\n\n\x06MKLDNN\x10\x02\x12\n\n\x06OPENGL\x10\x03\x12\n\n\x06OPENCL\x10\x04\x12\t\n\x05IDEEP\x10\x05\x12\x07\n\x03HIP\x10\x06\x12!\n\x1d\x43OMPILE_TIME_MAX_DEVICE_TYPES\x10\x07\x12\x14\n\rONLY_FOR_TEST\x10\xc5\xde\xfb\t')
TypeError: __init__() got an unexpected keyword argument 'syntax'

则是因为protobuf的版本问题,源于protobuf的python版本与protoc的版本不符,利用

protoc --version

 查看protoc的版本,安装合适的python包:

sudo pip install protobuf==对应版本

至此caffe2基本安装完成。

之后按照Detectron的安装顺序安装Detectron,这个基本不会有太大的问题。

<think>嗯,用户这次在询问固态硬盘的健康检测方法,结合之前讨论的Chrome搜索引擎设置问题,看来ta是个喜欢自己动手解决问题的技术爱好者。从引用内容来看,用户已经做了些功课,知道需要专业软件测试,但可能对具体操作流程和指标含义太清楚。用户引用的三篇资料其实挺全面了:引用1解释了SSD寿命的特殊性,引用2展示了实际测试案例,引用3汇总了五大检测工具。过ta的提问更聚焦在“如何判断好坏”这个实操层面,需要我整合这些信息形成可操作的指南。考虑到固态硬盘故障的突发性,检测应该包含两层:即时诊断和长期监控。软件方案最实用,但物理方法作为补充也很重要。在工具推荐上要突出免费工具的实用性,毕竟普通用户太会购买专业设备。参数解释部分需要简化,比如P/E周期、坏块这类术语要配上生活化类比。用户可能还隐含两个需求:一是检测后发现问题该怎么办,二是重要数据如何备份。虽然ta没明说,但作为完整解决方案应该包含这部分。最后的注意事项里要强调“要等报警才备份”这个血泪教训。对了,企业级用户可能有批量检测需求,但当前提问更偏向个人场景,集群方案就放在相关问题里作为扩展吧。</think> 以下是检测固态硬盘(SSD)健康状况和性能的完整方案,结合软件工具与物理检测方法,帮助您全面评估SSD状态: --- ### **一、软件检测工具与步骤** #### **1. 健康度诊断(寿命预测)** - **工具推荐**: - **CrystalDiskInfo**(免费):显示SMART属性值(如`媒体磨损指示`、`剩余寿命`),直观展示健康状态百分比[^1][^3] - **SSDLife Pro**(付费):通过写入量分析预测剩余寿命,支持长期监控 - **关键指标解读**: - **剩余寿命 (Life Left)**:低于10%需准备更换 - **坏块数量 (Reallocated Sectors)**:持续增长表明闪存颗粒老化 - **写入总量 (Total Host Writes)**:对比厂商标称TBW值(如500TBW)判断损耗 #### **2. 性能测试(速度与稳定性)** - **必备软件**: - **CrystalDiskMark**:测试顺序/随机读写速度(如图) - **AS SSD Benchmark**:检测4K随机性能(影响系统响应速度) - **TxBENCH**:深度分析读写延迟与IOPS[^3] - **测试标准**: - **异常表现**: - 实际速度低于标称值50%(如标称3500MB/s,实测<1700MB/s) - 4K随机读写延迟>0.1ms(新盘通常0.02~0.05ms) ```markdown # 性能测试结果示例(正常状态) | 测试项 | 读取速度 | 写入速度 | |--------------|-----------|-----------| | 顺序读写(Seq) | 3200 MB/s | 2900 MB/s | | 4K随机(Q32T1)| 480 MB/s | 420 MB/s | ``` --- ### **二、物理检测方法** 1. **异常噪音**:SSD工作时发出异响(如咔嗒声)表明电路故障 2. **频繁蓝屏/死机**:系统日志中出现`NTFS_FILE_SYSTEM`或`CRITICAL_STRUCTURE_CORRUPTION`错误 3. **文件损坏迹象**: - 复制文件时校验失败(如Hash值匹配) - 程序无故报错“文件损坏” --- ### **三、应急修复与数据备份** | 场景 | 操作建议 | |---------------------|----------------------------| | 健康度低于90% | 立即备份数据,避免存储重要文件 | | 出现坏块 | 运行`chkdsk /f /r`修复文件系统 | | 读写速度暴跌 | 更新固件 + 执行安全擦除(Secure Erase) | > ⚠️ **重要提醒**:定期使用**Robocopy**或**VeraCrypt**加密备份关键数据,避免SSD突发故障导致数据永久丢失[^1] --- ### **四、专业工具对比** | 工具名称 | 核心功能 | 适用场景 | |--------------------|-----------------------------|-----------------------| | **SSD-Z** | 识别主控型号+闪存类型 | 检测硬件真伪 | | **Hard Disk Sentinel** | 实时监控温度/写入量 | 长期健康追踪 | | **HDTune Pro** | 表面扫描(坏块检测) | 排查物理损坏 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值