目录

一. 电脑配置:

二. 安装过程

1.安装相关依赖项

2.安装NVIDIA驱动

一,下载安装驱动法

二.终端直接下载安装驱动法。

3.安装CUDA

4.配置cuDNN

5.安装opencv3.1(我是根据我自己的视频来装的)

6.配置caffe

MNIST数据集测试


Caffe已经是第三次安装配置了,为什么是第三次呢?因为我实在是低估了深度学习对于硬件的要求。第一次我在自己笔记本上配置的单核,CPU only ... 结果是,样例数据跑了4小时,这还怎么玩?第二次在台式机上,因为台式机比较low,I5处理器4核,没有NVIDIA的GPU。我把别人训练好的模型下载下来,然后自己测试,发现真的成功了,心里小激动~ 然而,当我自己训练模型时,我训练7天..... 关键是7天了还在跑.....

心想,我这个穷逼难道要自己掏钱买个服务器?那怎么可能。还好,老师人非常好,给我找了个服务器~ 现在终于是劳资大显身手的时候了。

整个配置过程很长啊,坑多,没有linux基础的就别来了,你会崩溃的。我参考了好几个帖子,基本上每个帖子都有或多或少的问题,文章结尾的时候,我会留下前辈们的文章地址,算是对他们的尊敬和对我帮助的感谢。好,下面切入正题!


一. 电脑配置

系统:Ubuntu16.04 GPU:NVIDIA GTX 750 Ti (提示:在linux下可以通过 lspci | grep -i vga 查看)。该命令可能不显示具体型号 而只显示 nvidia device 10b2等可直接看下面驱动安装的第二种方法。

二. 安装过程

1.安装相关依赖项

(安装caffe的依赖包可以提前安装的 ,在家目录ubuntu@ubuntu:~$  安装)不安装caffe可以跳过。

1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler2 sudo apt-get install --no-install-recommends libboost-all-dev3 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev4 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.安装NVIDIA驱动

(第一种方法需要自行下载安装包,前期是已经知道,NVIDIA驱动的型号:当不知型号时第二种可更方便简洁的安装驱动。)

一,下载安装驱动法

(1)查询NVIDIA驱动

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us 查看适合自己显卡的驱动并下载:

驱动文件后缀名应当是以.run结尾的。我们要把这个文件移动到家目录下,原因是下面我们要切换到文字界面下,如果放到~/下载 下面,我们没有办法进入下载这个目录(没有中文输入法,且中文全部是乱码

图1 输入显卡型号 图2 显卡驱动搜索结果

我的显卡型号是NVIDIA GTX 750 Ti,系统是linux 64位,按照要求选择后点击search. 图2是搜索结果,点击下载就好了。

我下载后的驱动文件是:NVIDIA-Linux-x86_64-375.39.run

(2)安装驱动

在终端下输入

(ubuntu@ubuntu:~$): sudo gedit /etc/modprobe.d/blacklist.conf

输入密码后在最后一行加上 blacklist nouveau . 这里是将Ubuntu自带的显卡驱动加入黑名单。

在终端输入:

 sudo update-initramfs -u

重启电脑~
这里要尤其注意,安装显卡驱动要先切换到文字界面(按Ctrl+Alt+F1~F6),我电脑是按Ctrl+Alt+F1.所以,启动电脑后,先进入文字界面,输入电脑名(我电脑是ubuntu),密码。

然后,输入命令

sudo service lightdm stop

现在可以安装驱动了,先进入家目录 cd ~ ,

然后:输入

 sudo chmod 755 NVIDIA-Linux-x86_64-367.39.run(381.22.run)  //获取权限

再输入

sudo ./NVIDIA-Linux-x86_64-375.39.run  //安装驱动

依次按

Accept
Continue installation

安装完成之后

sudo service lightdm start·

完成后,再次重启电脑。

安装完成之后输入以下指令进行验证: sudo nvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:

二.终端直接下载安装驱动法。

首先,检测你的NVIDIA图形卡和推荐的驱动程序的模型。执行命令:

$ ubuntu-drivers devices

输出结果为:

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==

modalias : pci:v000010DEd00001180sv00001458sd0000353Cbc03sc00i00

vendor   : NVIDIA Corporation

model    : GK104 [GeForce GTX 680]

driver   : nvidia-304 - distro non-free

driver   : nvidia-340 - distro non-free

driver   : nvidia-384 - distro non-free recommended

driver   : xserver-xorg-video-nouveau - distro free builtin

== cpu-microcode.py ==

driver   : intel-microcode - distro free

从中可以看到,这里有一个设备是GTX 680 ,对应的驱动是NVIDIA -304,340,384 ,而推荐是安装384版本的驱动。

接下来 安装驱动

你可以选择,安装所有推荐的驱动,如下命令

$ sudo ubuntu-drivers autoinstall

你也可以选择,只安装其中一个驱动,命令如下

$ sudo apt install nvidia-340

OK 驱动安装完成

在终端下输入

(ubuntu@ubuntu:~$): sudo gedit /etc/modprobe.d/blacklist.conf

输入密码后在最后一行加上 blacklist nouveau . 这里是将Ubuntu自带的显卡驱动加入黑名单。

在终端输入:

sudo update-initramfs -u

安装完成之后输入以下指令进行验证: sudo nvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:

3.安装CUDA

CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。

(1)下载CUDA

首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:

(2)md5sum  cuda_8.0.61_375.26_linux.run看下载是否完整,若不完整后面md5和前面网页后提示打开的md5不一样

:官方提供的md5

我的

相同这下载完整(注:在安装的那台电脑上下,如用其他电脑下载拷贝过来就是错的)

(3) 下载完成后执行以下命令:

1 sudo chmod 777 cuda_8.0.61_375.26_linux.run
2 sudo  ./cuda_8.0.61_375.26_linux.run

注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia367驱动时,一定要选择否:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。

输入命令后如下图所示:停留在下图画红线地方时,一直按回车键到100%

Do you accept the previously read EULA?
accept/decline/quit: acceptInstall NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: nInstall the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: yEnter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: yInstall the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: yEnter CUDA Samples Location
[ default is /home/zhou ]:Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.soInstalling the CUDA Samples in /home/zhou …
Copying samples to /home/zhou/NVIDIA_CUDA-8.0_Samples now…
Finished copying samples.===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/zhou, but missing recommended librariesPlease make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/binPlease see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driverLogfile is /tmp/cuda_install_2961.log

(4)环境变量配置

打开~/.bashrc文件:

 sudo gedit ~/.bashrc

将以下内容写入到~/.bashrc尾部:

1 export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}2 export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}3 export PYTHONPATH=/home/ubuntu/caffe/python$PYTHONPATH

加完环境变量执行

source ~/.bashrc

输入:

sudo ldconfig //环境变量立即生效

(5)测试CUDA的samples

1 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery2 sudo make3 sudo ./deviceQuery

如果显示一些关于GPU的信息,则说明安装成功。

(6) 测试cuda的samples

cd  /home/ubuntu/NVIDIA_CUDA-8.0_Samplesmake

也不知道是我的错觉还是什么的,比以前快很多啊,大概等7分钟左右吧。

4.配置cuDNN

cuDNN是GPU加速计算深层神经网络的库。
首先去官网 https://developer.nvidia.com/rdp/cudnn-download 下载cuDNN,需要注册一个账号(用QQ邮箱即可注册)才能下载。下载版本号如下图:

下载cuDNN5.1之后进行解压:

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz

显示如下文件:

*cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.1.5
cuda/lib64/libcudnn_static.a*

同时在家目录下生成cuda的文件夹(可能有锁),通过sudo chown ubuntu cuda/ -R解锁,(这步我直接拷贝硬盘中的cuda文件夹,没有进行解压解锁操作)

若进行sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz 解压后得到的是

说明你下载的问件是有问题的。

进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:

cd cuda/includesudo cp cudnn.h /usr/local/cuda/include  #复制头文件

再将进入lib64目录下的动态文件进行复制和链接:

cd ..cd lib64sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5  #生成软衔接sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

这步根据自己解压文件来修改,如解压后是libcudnn.so.5.1.10.  就要把libcudnn.so.5.1.5改为libcudnn.so.5.1.5,其他的一样

继续执行以下指令:

sudo chmod a+r /usr/local/cuda/include/cudnn.hsudo chmod a+r /usr/local/cuda/lib64/libcudnn*

然后设置环境变量和动态链接库:

$ sudo gedit /etc/profile$ sudo gedit /etc/profile

然后再打开的文件末尾加上(“=”前后不要有空格)

$  export PATH=/usr/local/cuda/bin:$PATHexport PATH=/usr/local/cuda/bin:$PATH

保存之后创建链接文件:

$ sudo gedit /etc/ld.so.conf.d/cuda.conf

输入 /usr/local/cuda/lib64

$ sudo ldconfig

使用sample里面的例子来测试还需要编译。因为当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则无法编译成功。

$ cd /usr/local/cuda-8.0/include$ sudo cp host_config.h host_config.h.bak #备份编译头文件$ cd /usr/local/cuda-7.5/include$ sudo cp host_config.h host_config.h.bak   #备份编译头文件$ sudo gedit host_config.h

#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

#endif /* __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9) */

然后进入用例文件进行编译(注意执行第二步命令时候需要较长时间是正常现象):

$ cd /usr/local/cuda/samples
$ sudo make all -j4
$ cd /usr/local/cuda/samples/bin/x86_64/linux/release
$ sudo ./deviceQuery
$ cd /usr/local/cuda/samples
$ sudo make all -j4
$ cd /usr/local/cuda/samples/bin/x86_64/linux/release
$ sudo ./deviceQuery

执行命令后出现如下信息则说明显卡驱动和cuda安装成功。

5.安装opencv3.1(我是根据我自己的视频来装的)

从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了/home/opencv。

1 unzip opencv-3.1.0.zip
2 sudo cp ./opencv-3.1.0 /home
3 sudo mv opencv-3.1.0 opencv

安装前准备,创建编译文件夹:

需要安装一些软件包(2018年1月17日安装的时候跳过坑,之后就重新编译了):

sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
cd ~/opencv
mkdir build
cd build

配置(就是在build文件夹下):

1 sudo apt install cmake
2 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

编译:

sudo make -j8

-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。

可能出现问题:

这是因为opecv3.0与cuda8.0不兼容导致的。解决办法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:

其中, #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000) 是我们修改的。
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:

sudo make install

周是OpenCV的第一课,楼主之前都是在windows下用opencv。昨天尝试在ubuntu配置opencv环境,配置好后运行测试代码出现了错误。
但最终在这个论坛里找到了解决方法。由于那个帖子在别的板块,故将其引用过来分享给大家
/usr/bin/ld: warning: libOpenCV_core.so.3.1, needed by //usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_core.so.2.4
/usr/bin/ld: /tmp/ccDhjMld.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'
//usr/local/lib/libopencv_core.so.3.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

解决方案

sudo apt-get autoremove libopencv-dev

6.配置caffe

(1)使用Git

直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。由于我习惯去github上找代码,所以就直接去下载的源码。

下载完成后,会在家目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe.

(2)因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config: sudo cp Makefile.config.example Makefile.config

(3) 打开并修改配置文件:
sudo gedit Makefile.config #打开Makefile.config文件 根据个人情况修改文件:
a.若使用cudnn,则

#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
b.若使用的opencv版本是3的,则

#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
c.若要使用python来编写layer,则
将 #WITH_PYTHON_LAYER := 1
修改为 WITH_PYTHON_LAYER := 1
d.重要的一项 :
将 # Whatever else you find you need goes here. 下面的

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

修改为:

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include (空格)/usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial      

这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.

(4)修改makefile文件
打开makefile文件,做如下修改:
将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

(5)编辑/usr/local/cuda/include/host_config.h

这步我没操作,因为操作了老是在后面编译caffe时出错)将其中的第115行注释掉:将

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为

//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

(6)编译
make all –j4 #-j根据自己电脑配置决定
编译过程中可能会出现如下错误:
错误内容1:
"fatal error: hdf5.h: 没有那个文件或目录"
解决办法:
step1:在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
将:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include  (空格)/usr/include/hdf5/serial/
stept2:在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
错误内容2:
"libcudnn.so.5 cannot open shared object file: No such file or directory"
解决办法是将一些文件复制到/usr/local/lib文件夹下:
#注意自己CUDA的版本号!

1 sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
2 sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
3 sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
4 sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig

(8)测试

sudo make runtest

如果运行之后出现下图,说明caffe配置成功。

到此caffe配置完毕!

MNIST数据集测试

配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:

1.将终端定位到Caffe根目录
cd ~/caffe

2.下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh

3.将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh

4.训练网络
./examples/mnist/train_lenet.sh
训练的时候可以看到损失与精度数值,如下图:

可以看到最终训练精度是0.9914。

如果出现错误,可以尝试:sudo ./examples/mnist/train_lenet.sh

实在还不行就要换驱动了

http://www.cnblogs.com/xuanxufeng/p/6150593.html  ##主要参考

http://blog.csdn.net/u011272513/article/details/52103453  ##主要参考

http://www.2cto.com/kf/201702/594221.html

http://www.2cto.com/os/201607/528798.html

http://f.dataguru.cn/thread-745066-1-1.html  ##opencv出现的错误解决方法

http://www.cnblogs.com/simplelovecs/p/5156458.html  ##安装opencv

http://pan.baidu.com/share/link?uk=3759922083&third=0&shareid=3070061684&adapt=pc&fr=ftw  ##下载cudnn

需要 cuda cudnn安装包可以私我要链接。

Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe相关推荐

  1. Ubuntu16.04安装后开发环境配置和常用软件安装

    Ubuntu16.04安装后1.安装常用软件搜狗输入法+编辑器Atom+浏览器Chome+视频播放器vlc+图像编辑器GIMP Image Editor安装+视频录制软件RcordMyDesktop安 ...

  2. Ubuntu16.04安装AMD显卡,AMD GPU驱动踩坑经历

    事情过程:本来Ubuntu16.04有一块low的A卡,后来淘了一块AMDRX570准备换上,先是黑屏,以为是NVIDIA显卡去装NVIDIA驱动了,后来才发现是A卡,又卸了NVIDIA显卡去装AMD ...

  3. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)...

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  4. Ubuntu16.04安装Docker CE 并配置加速器

    PS:腾讯云Ubuntu16.04 64位,安装Docker CE 17.03 Docker目前分为两个版本: Docker Enterprise Edition (Docker EE) 专为企业开发 ...

  5. 【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】

    Ubuntu安装步骤参考文章 知乎:Ubuntu 20.04系统安装及初始配置 目录 一. 制作启动盘 1.1 下载镜像文件 1.2 制作启动盘 二. 安装系统 2.1 启动计算机并进入BIOS 2. ...

  6. pytorch cpu版本安装_pytorch深度学习框架--gpu和cpu的选择

    最近实现了一个简单的手写数字识别的程序,我安装的pytorch是gpu版(你也可以安装cpu版本的,根据个人需要),这里我介绍pytorch的gpu版本和cpu版本的安装以及训练手写数字识别时gpu和 ...

  7. 1080显卡主机配置cuda+cudnn+opencv+caffe经历

    本篇文章为实验室新买的主机配环境所遇到的问题总结,记录的主要是重要的一些细节. 参考CSDN博客 https://blog.csdn.net/yhaolpz/article/details/71375 ...

  8. manjaro深度学习tensorflow环境搭建 cuda cudnn nvidia显卡设置

    NVIDIA显卡驱动安装 注意点:系统安装时 一定要选择no free Manjaro系统安装显卡比较简单,它有一个命令 sudo mhwd -a [pci or usb connection] [f ...

  9. Matlab的Gpu加速(CUDA cudnn)

    多CUDA版本的切换,及Matlab版本对应的CUDA版本 学习笔记–Matlab的Gpu加速 安装CUDA和cudnn时,踩了不少坑,总结如下几个经验: 1.显卡驱动的版本与CUDA是一对多的关系, ...

最新文章

  1. 机器学习论文推荐 | 2019 Reddit最受喜欢的5篇AI论文
  2. 植物大战僵尸食人花无cd逆向分析
  3. spring boot 入门_SpringBoot入门建站全系列(三十)Mybatis多数据源进行数据库操作
  4. centos操作系统搭建Lamp环境(apache php mysql)
  5. Windows上Tomcat启动,服务中没有Tomcat
  6. ubuntu 16.04 + apache2 将php7.1 切换到 php7.3
  7. 计算机硬件的维护知识,电脑放了一年开不了机 电脑硬件维护常识要点有哪些...
  8. RequireJS模块化之循环依赖
  9. python基础之条件循环语句
  10. codeblocks和vscode编译时弹出不支持的16位程序解决方案
  11. 计算机学数字电子基础知识,什么是数字电路?新手如何快速学习数字电路基础?...
  12. 毕设查重,避免雷区【划重点!!!】
  13. keil c语言怎么写程序,用keil软件如何编写单片机程序?
  14. Socket服务器分类与流程总结
  15. 解决Tomcat中文乱码问题——windows平台
  16. Excel单元格锁定及解锁
  17. uniapp 公众号微信支付提示 调用支付jsapi缺少参数appid
  18. linux 配置回指路由,不配置回指路由多网段网络如何互联?
  19. Validity和setCustomVilidity
  20. Qt开发的国内外知名软件

热门文章

  1. Office365软件安装包+安装教程
  2. 概率论与数理统计-------参数估计-------区间估计------置信区间、枢轴变量
  3. C51中intrins_h头文件解释分析
  4. (U8)系统管理登录时提示“缺少根元素”
  5. prometheus+grafana告警,监控部署展示
  6. “大部人从外界看阿里是‘雾里看花’”,所以马云亲自敲出了这5000字的致股东信
  7. 孙陶然:核心价值观是企业用人的“一票否决权”
  8. 步步为营-57-JQuery练习题
  9. java 探测联网机_智能工厂-机联网
  10. Visual Hull基于序列图像的三维重建