深度学习在哪里?

我们已然生活在数字时代,一天24小时我们被数字包围。我们生活中的方方面面都在使用数字来表达、传递、存储。我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息。

在数字世界中,可以通过计算寻找隐藏于数字背后的逻辑、规律、模型。通过它们又可以去发现、预测、创造、重塑我们的世界。深度学习就是寻找数字世界深处运作模型的一种重要方法。

今天,很多领域都能看到深度学习的身影:从L5级自动驾驶到基于图像识别的自动制导武器,从物流分拣机器人到扫地机器人,从资本市场的量化投资到保险和信贷中的风控,从医疗诊断到药物研发,从自动翻译到相机美颜,从头条到抖音 ...... 不知不觉中它正在遍地开花,影响着甚至操控着我们的生活。

还有哪些行业、领域可以用深度学习来赋能?可以说已经或正在做数字化转型,并且依靠经验直觉来工作的领域几乎都行。

入手深度学习有哪些要求

希望将深度学习作为生产力工具的开发者,需要对其背景知识有一些了解。以下内容可做入门参考:

1、编程基础:在模型训练过程中主要使用Python;

2、数学基础:导数和微分、线性代数、概率和统计;

3、深度学习的基本理论:包括神经网络的基本原理、激活函数、损失函数、反向传播、梯度下降和梯度下降加速方法、学习速率优化、正则化、归一化等,还有基本的卷积神经网络、循环神经网络、强化学习等;

4、最好对常用的深度模型 AlexNet、VGG Net、GoogleNet、ResNet、ResNeXt、R-CNN、YOLO、SegNet、GAN 等有基本了解;

可以先把运行环境搭起来,对哪个方面有兴趣可以一边找些DEMO增加感性认识、提升信心和兴趣,同时去深入理解背后的理论。

如何选择深度学习框架

要入手深度学习的例子,首先要选择一个深度学习框架。

好的深度学习框架可以让我们方便地定义深度神经网络模型,导入训练数据,执行和监控训练过程,保存和部署训练结果。

做深度学习有多种可供选择的框架:Tensorflow、PyTorch、Caffe、Theano、MXNet、Torch、还有百度的PaddlePaddle...... PyTorch 和 TensorFlow 应该是使用最多的。

TensorFlow偏向于工业应用,PyTorch偏向于学术研究。我们可以先熟悉一种框架,对于一种框架的使用经验也很容易迁移到其他框架上。我一直用的TensorFlow, 后面环境搭建和示例都以TensorFlow作为基础框架。

搭建深度学习训练环境

自己开发使用的Windows10,在Windows下准备基于Tensorflow的深度学习训练环境主要有两种方式,具体可以参考TensorFlow官方文档:

第一种:安装Python环境,然后通过pip安装TensorFlow。如果要使用支持CUDA的GPU训练,则要另外安装NVIDIA GPU驱动程序、CUDA工具包、cuDNN SDK等。

第二种:直接使用已经安装配置好的TensorFlow Docker镜像。如果在Windows10下用过WSL和Docker,这种方法比较方便。

Windows10下,配置带GPU加速的Docker深度学习环境

如果要训练较大较深的模型,那么用GPU加速会节省不少时间。下面是安装步骤:(参考Nvidia官方文档)

第一步:安装NVIDIA Windows驱动和Linux子系统

  1. Docker容器中使用GPU,首先需要将windows10升级到21H2以上版本。

  2. 下载安装最新的Windows版Nvidia驱动程序。

下面的步骤在Windows命令行下执行:

# 安装wsl
C:\> wsl.exe --install
# 将wsl升级到最新
C:\> wsl.exe --update
# 使用 wsl2
C:\> wsl --set-default-version 2
# 查看所有可用的Linux子系统版本
C:\> wsl --list --online
# 安装指定版本的linux操作系统
C:\> wsl --install -d Ubuntu-20.04

第二步:安装Nvidia-Docker

以下命令在刚安装的Linux子系统中执行:

$ curl https://get.docker.com | sh
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
# 测试安装是否成功
$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

第三步:运行带有GPU加速的TensorFlow Docker镜像

C:\> docker run --gpus all -d -it -v D:\tf\notebooks:/tf/notebooks -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter

该镜像自带Jupyter Notebook。容器运行后可以在后台看到如下网址,使用该网址就能访问Jupyter Notebook的IDE环境

本期到此为止。《基于AI的计算机视觉识别在Java项目中的使用》专题将按下列章节展开,欢迎关注我的个人公众号( TuXiang )和CSDN( TuXiang++ )。

一、《基于AI的计算机视觉识别在Java项目中的使用 —— 背景》

二、《基于AI的计算机视觉识别在Java项目中的使用 —— OpenCV的使用》

三、《基于AI的计算机视觉识别在Java项目中的使用 —— 搭建基于Docker的深度学习训练环境》

四、《基于AI的计算机视觉识别在Java项目中的使用 —— 准备深度学习训练数据》

五、《基于AI的计算机视觉识别在Java项目中的使用 —— 深度模型的训练调优》

六、《基于AI的计算机视觉识别在Java项目中的使用 —— 深度模型在Java环境中的部署》

基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境相关推荐

  1. 【AI学院】老司机手把手带学言有三的经典书籍《深度学习之图像识别》,需要的赶紧上车吧...

    为什么以及怎么学计算机视觉? 作为一个普通的程序员,如果能转型成为一个计算机视觉算法工程师,带来的不仅是高薪,还有从劳动密集型工种转化为智力密集型工种带来的"阶级跃迁".因为相对于 ...

  2. Java语言中提供了三个日期类_Java语言学习(5)-Java中基础封装类(日期、时间类)...

    日期和时间封装类 1. Data类 Java日期和时间采用Data类.Data类在java.util包中. Data类构造函数: 1)       Data()   采用当前时间初始化对象: 2)   ...

  3. 基于ssm Vue+elementui农家乐管理系统java 项目源码介绍

    一.源码描述   这是一款基于web的前后端分离JAVA+SSM和vue.js源码 基于B/S开发,包含毕业论文和答辩ppt,开发工具idea支持eclipse,MySQL,适合作为毕业设计使用,感兴 ...

  4. 基于SSM的学生会管理系统-基于ssm的社团信息管理系统-java项目

    基于SSM的学生会管理系统-基于ssm的社团信息管理系统-java项目 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SSM 前端技术:HTML+ ...

  5. 深入云原生 AI:基于 Alluxio 数据缓存的大规模深度学习训练性能优化

    作者 | 车漾(阿里云高级技术专家).顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数 ...

  6. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  7. Ant在Java项目中的使用(一眼就看会)

    参考:http://www.cnblogs.com/zhengqiang/p/5557155.html Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将A ...

  8. 在Java项目中整合Scala

    Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...

  9. 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring

    这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...

最新文章

  1. Android 获取标题栏的高度
  2. 从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 下载
  3. 纯真IP库的结构分析及一个查询类
  4. Python基础语法精心总结!看完都知道的可以往下继续学习了
  5. linux mysql temp 设置_linux上mysql的简单入门
  6. kibana安装与Kibana server is not ready yet
  7. python super详解_Python super 详解
  8. 软件工程第二次作业(原型设计)
  9. Hexo框架+Github Page搭建博客(附下载主题、导出CSDN博客至Hexo博客)
  10. 2016年第9本:系统之美
  11. 卸载软件 Geek Uninstaller
  12. VS调试配置外网可访问
  13. C语言中自定义的标识符
  14. 最简单易懂的SpringCloudSleuth教程(spring cloud体系的链路追踪系统)
  15. 阿里立秋:淘宝如何做智能化UI测试?
  16. 软件工程课程设计分组与选题名单
  17. 找回Windows 10安全通知图标
  18. word 文档如何加密
  19. Apple ProRes格式版本
  20. CSDN知识库构建,我以我血荐轩辕

热门文章

  1. 阿里云日本区正式开服 飞天系统全球化部署格局初定
  2. Ardupilot源码框架
  3. 应用计算机测定电阻伏安特性实验,电路元件伏安特性测量实验报告答案.doc
  4. uni.showModal,uni.showToast使用
  5. Phaser 3 入门实例教程
  6. word没有标题3和标题4的解决方式
  7. 天创速盈带你了解拼多多新店运营技巧
  8. 知物由学 | 一文读懂Android资源文件保护
  9. Linux—添加开机启动
  10. ABeam Recruiting | ABeam旗下艾宾信息技术开发(西安) 2023届校招资讯大放送