在Android手机上使用腾讯的ncnn实现图像分类
在之前笔者有介绍过《在 Android 设备上使用 PaddleMobile 实现图像分类》,使用的框架是百度开源的 PaddleMobile。在本章中,笔者将会介绍使用腾讯的开源手机深度学习框架 ncnn 来实现在 Android 手机实现图像分类,这个框架开源时间比较长,相对稳定很多。
在之前笔者有介绍过《在 Android 设备上使用 PaddleMobile 实现图像分类》,使用的框架是百度开源的 PaddleMobile。在本章中,笔者将会介绍使用腾讯的开源手机深度学习框架 ncnn 来实现在 Android 手机实现图像分类,这个框架开源时间比较长,相对稳定很多。
在之前笔者有介绍过《在 Android 设备上使用 PaddleMobile 实现图像分类》,使用的框架是百度开源的 PaddleMobile。在本章中,笔者将会介绍使用小米的开源手机深度学习框架 MACE 来实现在 Android 手机实现图像分类。
有不少开发者在学习深度学习框架的时候会开源一些训练好的模型,我们可以使用这些模型来运用到我们自己的项目中。如果使用的是同一个深度学习框架,那就很方便,可以直接使用,但是如果时不同深度学习框架,我们就要对模型转换一下。下面我们就介绍如何把 Caffe 的模型转换成 PaddlePaddle 的 Fluid 模型。
我们使用的是 CASIA-WebFace 数据集,该人脸数据集是目前最大的公开人脸数据集。该人脸数据集一共有包含 10,575 个人,494,414 张图像,包含彩色图和灰图。各大人脸数据集情况如下表。
现在越来越多的手机要使用到深度学习了,比如一些图像分类,目标检测,风格迁移等等,之前都是把数据提交给服务器完成的。但是提交给服务器有几点不好,首先是速度问题,图片上传到服务器需要时间,客户端接收结果也需要时间,这一来回就占用了一大半的时间,会使得整体的预测
在 Android 6.0(API 级别 23)以下申请权限是非常简单的,直接在 AndroidManifest.xml
这个配置文件中加入申请权限的列表就可以了,比如我要申请四个权限,如下:
在本篇文章中,我们将会介绍 TensorFlow 的安装,TensorFlow 是 Google 公司在 2015 年 11 月 9 日开源的一个深度学习框架。
笔者在《MySQL 数据库实现主从复制》这一篇文章中有提到读写分离这个技术,这个技术时基于主从复制之后的一种技术。在数据库主从复制中,一个主数据库有一个或者多个从数据库,我们可以对主数据库进行写入操作
从安全角度来说这是非常不安全的,比如这个数据库服务器磁盘突然损坏了,里面的数据全部丢失了。这种情况如果一开始只是部署一个数据库的话就非常危险了,这表明我们要丢失全部数据,而数据对网站来说是最最重要的,所以我们要保证数据的安全。
笔者介绍了如何在 CentOS 上搭建一个可支持高可用高并发的 Java Web 后端服务器。善于思考的读者可能会想到,在上一篇文章中,我们只是实现 Java Web 服务器的分布式来应对高并发,但是高并发对数据库的的负担也是很重的。在上一篇文章中,我们只是使用到一个 MySQL 服务器,但是但
本篇文章将介绍如何搭建使用 Nginx 和 Tomcat 的高可用高并发的网站,我们将会在 CentOS 系统上搭建这样一个网站后端。这个系统的架构如下:
最近在学习 PaddlePaddle 在各个显卡驱动版本的安装和使用,所以同时也学习如何在 Ubuntu 安装和卸载 CUDA 和 CUDNN,在学习过程中,顺便记录学习过程。在供大家学习的同时,也在加强自己的记忆。本文章以卸载 CUDA 8.0 和 CUDNN 7.05 为例,以安装 CUDA 10.0 和 CUDNN 7.4.2 为例。
最近在学习在 CentOS 上搭建一个云服务平台,所以写下该文章当做笔者的学习笔记,提供给大家一起学习。虽然我们没有办法实现像百度云、腾讯云、阿里云那么强大的云服务平台,但是可以学习它们这些思维,做一个简单的云平台给自己的团队或公司使用。
在本章中,我们一起来学习下 TensorFlow。我们将会学习到 TensorFlow 的一些基本库。通过计算一个线性函数来熟悉这些库。最后还学习使用 TensorFlow 搭建一个神经网络来识别手势。
反向传播计算梯度\frac{\partial J}{\partial \theta}, \theta表示模型的参数。 J是使用正向传播和损失函数来计算的。
计算公式如下:
如果训练数据集不够大,由于深度学习模型具有非常大的灵活性和容量,以至于过度拟合可能是一个严重的问题,为了解决这个问题,引入了正则化的这个方法。要在神经网络中加入正则化,除了在激活层中加入正则函数,应该 dropout 也是可以起到正则的效果。我们来试试吧。
所以一个良好的初始化也是非常重要的,这里尝试三种初始化化方式:
有时候我们需要一些网络数据来工作、学习,比如我们做深度学习的。当做一个分类任务时,需要大量的图像数据,这个图像数据如果要人工一个个下载的,这很明显不合理的,这是就要用到爬虫程序。使用爬虫程序帮我们下载所需要的图像。那么我们就开始学习爬虫吧。
这里导入了两个工具类,可以从这里下载,这里包含了这个函数和用到的数据集,其中用到了 h5py
,如果读者没有安装的话,要先用 pip
安装这个库,还有以下用到的库也要安装。