7步掌握基于Keras的深度学习!_shejiangao的博客-程序员秘密

技术标签: 人工智能  

摘要:你对学习使用Keras感兴趣吗?你是否已经对神经网络的工作方式有一定的了解?看看这个精简的七步计划,从新手开始尽快地掌握Keras基础知识。

对于所有想要开始深度学习的人来说,有很多神经网络框架、库和api等都是非常重要的。可是…为什么要用Keras呢?

Keras是一种高级的神经网络API,它运行在许多底层库之上,这些库被用作后端,包括TensorFlow、Theano、CNTK和PlaidML等。Keras代码是可移植的,这意味着你可以使用Keras 实现一个神经网络,然后使用Theano作为一个备份,再指定后端在TensorFlow上运行,并且不需要对代码进行进一步的更改。数据科学家和机器学习专家Charles Martin总结了这样一句话:

我们已经使用这些算法超过10年了。这并不容易,但对一个好的黑客来说是足够的。对我来说,Keras使得那些被认为不可用的人工智能产品能够发挥它们的价值。

Keras是一种易于使用的神经网络库,它可以促进简单直观的语法。在某种程度上讲,它还面向神经网络技术消费者,而不只是生产商。这两组之间的界限并不是很明确;确切地说,到底是什么构成了机器学习算法的设计和实现,而不是修改已经准备好的机器呢?这就类似于是先有鸡还是先有蛋的问题,这并不是一个合适的讨论话题。然而,和其他已经建立的主流神经网络库相比,Keras更适合于数据科学的实践。事实上,我想说的是,Keras是任何一个使用神经网络的数据科学家的工具。

这篇教程的目的是让你以最快地速度了解Keras,如果你已经熟悉了神经网络,那就不是一个特别困难的任务了。为了达到这个目的,最好对神经网络有一定的了解。

步骤一:神经网络基础

神经网络是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起。它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。

神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。

神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。

神经网络,是一种应用类似于大脑神经突触连接结构进行信息处理的数学模型,它是在人类对自身大脑组织结合和思维机制的认识理解基础之上模拟出来的,它是根植于神经科学、数学、思维科学、人工智能、统计学、物理学、计算机科学以及工程科学的一门技术。

步骤二:Keras基础知识

首先,Keras到底是什么?

Keras是一个高级神经网络API,用Python编写,能够在TensorFlow、CNTK或Theano上面运行。它的开发重点是支持快速实验,能够以最短的时间从想法到结果。如果你需要有如下特点的深度学习库:

1、允许简单快速的原型设计(友好性、模块性和可扩展性)。

2、支持卷积网络和循环网络,以及两者的组合。

3、在CPU和GPU上无缝运行。

那么你就可以使用Keras。

步骤三:Keras的概述

Valerio Maggio于2017年在伦敦的PyData举行了一场精彩的演讲,题为“十个步骤学习Keras”。为了对Keras更深入的理解,可以拿Keras与其他库相比,以及使用它来完成事情,请花上90分钟看视频。然后看看下面链接的几页文档,以了解Keras是如何处理模型实现的。

视频:https://www.youtube.com/embed/FrkYu2zVUyM?spm=5176.100239.blogcont241621.12.op6xUk

1、Keras模型

2、开始使用ker序列化的顺序模型

3、开始使用kerapi函数API

如果你仍然有疑问,为什么你会选择Keras而不是TensorFlow,请读一下这篇文章:

TensorFlow还是Keras?我应该学哪一个?

https://medium.com/implodinggradients/tensorflow-or-keras-which-one-should-i-learn-5dd7fa3f9ca0?spm=5176.100239.blogcont241621.16.op6xUk

最后,关于更改Keras后端,请参阅这个文档页面:

Keras后端:https://keras.io/backend/?spm=5176.100239.blogcont241621.17.op6xUk

步骤四:慢慢地学习Keras

让我们做一件事:当人们开始使用一个新的深度学习库时,首先要做的事情之一就是:实现一个简单的逻辑回归模型。

如果你在之前的步骤中观看了Valerio的视频,那么你可能已经得到了你需要的东西。如果没有,那就从谈话中引用他的笔记。一般情况下,你可以阅读整个过程,再对TensorFlow、Theano和Keras的实现代码进行比较。如果你只对Keras 代码感兴趣,那么可以跳过大约一半。

多层完全连接网络:https://github.com/leriomaggio/deep-learning-keras-tensorflow/blob/euroscipy2017/1%20Multi-layer%20Fully%20Connected%20Networks.ipynb?spm=5176.100239.blogcont241621.18.op6xUk&file=1%20Multi-layer%20Fully%20Connected%20Networks.ipynb

首先,确保你已经查看了下面的Keras文档页面,这些文档页面描述了这两种模式(已经在上面提到的)和层。

1、开始使用keras序列化的顺序模型

2、关于Keras的层

3、Keras的核心层:https://keras.io/layers/core/?spm=5176.100239.blogcont241621.22.op6xUk

现在,请遵循这个基础,通过使用神经网络去实现一些关于三连棋游戏的东西。

Keras教程:使用神经网络识别三连棋游戏的胜利者。https://www.kdnuggets.com/2017/09/neural-networks-tic-tac-toe-keras.html?spm=5176.100239.blogcont241621.23.op6xUk

完成了这些步骤之后,你就应该准备好实现一些更复杂的架构了。

步骤五:实现卷积神经网络

要在Keras中实现卷积神经网络(CNN),首先要阅读它的卷积层的文档:

Keras卷积层:https://keras.io/layers/convolutional/?spm=5176.100239.blogcont241621.24.op6xUk

在此之后,请查看在Keras中关于CNNs的以下教程。第一种方法采用了较慢的方法,并且涵盖了你现在应该知道的大部分内容,而第二种则考虑了一些额外的主题,例如避免过度使用。这并不一定是一种非此即彼的方法;你可能会在两种模式中发现各自的价值:

Keras教程:Python的终极初学者指南,高级数据科学:https://elitedatascience.com/keras-tutorial-deep-learning-in-python?spm=5176.100239.blogcont241621.25.op6xUk

麦克欧文的卷积神经网络的介:https://sempwn.github.io/blog/2017/04/06/conv_net_intro?spm=5176.100239.blogcont241621.26.op6xUk

https://www.kdnuggets.com/2016/08/brohrer-convolutional-neural-networks-explanation.html?spm=5176.100239.blogcont241621.27.op6xUk

步骤六:实现一个循环的神经网络

要在Keras中实现一个循环的神经网络(RNN),首先要阅读它的循环层的文档:

Keras循环层:https://keras.io/layers/recurrent/?spm=5176.100239.blogcont241621.28.op6xUk

在此之后,尝试看Chris Albon的教程:实现一个长期的短期记忆(LSTM)网络——一种主要的RNN:

LSTM循环性神经网络:https://chrisalbon.com/deep-learning-keras/lstm_recurrent_neural_network.html?spm=5176.100239.blogcont241621.29.op6xUk

阅读附带的幻灯片。:https://docs.google.com/presentation/d/1hqYB3LRwg_-ntptHxH18W1ax9kBwkaZ1Pa_s3L7R-2Y/edit?spm=5176.100239.blogcont241621.30.op6xUk

步骤七:接下来该做什么?

在这一点上,你应该对Keras有一个坚实的理解,包括为什么要使用它,它在某些情况下优于其他库的优点,并使用它来实现各种网络架构。你现在是个专家,对吧?

好吧,也许不是。但希望你已经掌握了基本知识。当你想要超越基本的时候,最好的方法就是阅读Keras的官方教程:

Keras教程:https://blog.keras.io/category/tutorials.html?spm=5176.100239.blogcont241621.31.op6xUk

在此之后,查看Keras示例,其中包括了远景模型示例、文本和序列示例、生成模型示例等等。

Keras的示例:https://github.com/fchollet/keras/tree/master/examples?spm=5176.100239.blogcont241621.32.op6xUk

另外,如何挑战你自己,对你在之前的步骤中实现的一些模型进行微调呢?更改优化器,添加扩展层,使用激活函数。或者使用一些Keras量度标准来回顾并判断你的模型的性能。Keras文档是一个很好的开始:

Keras文档:https://keras.io/metrics/?spm=5176.100239.blogcont241621.33.op6xUk

Keras的常见问题:https://keras.io/getting-started/faq/?spm=5176.100239.blogcont241621.34.op6xUk

原文:https://www.kdnuggets.com/2017/10/seven-steps-deep-learning-keras.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shejiangao/article/details/89153816

智能推荐

python的django框架从入门到熟练【保姆式教学】第一篇_django教程_晋升阁的博客-程序员秘密

当今,Python已成为最受欢迎的编程语言之一。而Django是一个基于Python的Web框架,它能够帮助你快速、高效地开发Web应用程序。如果你是一名初学者,学习Django框架可能会让你感到有些困惑。不过,不用担心,我们将为你提供一个从入门到熟练的Django教程系列,让你轻松掌握Django的核心概念和应用。在本篇文章中,我们将开始介绍Django的基础知识。我们将从安装Django开始,介绍Django的主要组件,以及如何创建一个简单的Web应用程序。让我们开始吧!

AXURE RP EXTENSION For Chrome----解决办法_凌晨两点钟同学的博客-程序员秘密

不用下载Axure RP Extension for Chrome插件就可以打开Axure原型1、打开原型文件夹->resources->chrome->axure-chrome-extension.crx,找到Axure RP Extension for Chrome插件2、把.crx文件修改扩展名.rar,解压(重命名后右键解压)3、打开浏览器,输入chrome://extensions/(或者更多工具->扩展程序),右上角打开开发者模式,选择“加载已解压的扩展程序”

分享最近学习react源码的经历_yarn build react/index,react/jsx,react-dom/index,s_学前端的枣仁的博客-程序员秘密

分享最近学习react源码的经历写在前面:最近一段时间在学习React源码,写这篇文章的目的有二:分享自己学习的经历,希望之后有相关学习需求的同学有址可寻,少走弯路。将学习到的内容转化为文字输出,便于之后回顾(所以可能文中的文字大部分存在生搬硬套的问题,仅有少部分是自己的理解)我又将这段时间分成如下几个阶段:根据教程,手写一个简单的React对比React调用栈,了解React大体上的一个工作流程下载React源码,根据React源码分析教程,边学习,边调试再回顾一遍教程解读,结合其.

pysvn下载地址_Sen-Lee的博客-程序员秘密

http://pysvn.tigris.org/project_downloads.html

Gensim的简介_JL_Jessie的博客-程序员秘密

简介Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。基本概念语料Corpus: 一组原始文本的集合,用于无监督地训练文本主题的隐层结构,语料中不需要人工标注的附加信息。在Gensim中,Corpus通常是一个可迭代的对象(比如列表)。每次迭代返回一个可用于表达文本对象的稀疏

开发导致的内存泄漏问题,这样排查不背锅_Jaemon的博客-程序员秘密

开发导致的内存泄漏问题,这样排查不背锅

随便推点

使用STM32CUBEMX 新HAL库TF卡模拟U盘不能格式化问题_hal_sd_readblocks_ffmydream的博客-程序员秘密

单片机型号F767,CUBEMX版本V5.01,HAL库版本1.14.0,开发软件True Studio不得不说,基础很重要,按照网上之前的教程,照葫芦画瓢,但是新的HAL已经改动了,陆陆续续调了一个星期,WIN7下U盘盘符是有了,但是始终不能格式化,用这个板子测试CDC和HID都没有问题,一直静不下心来阅读USB协议和SD卡的相关协议,后来还是在论坛找到了原因。其实把usbd_stora...

循序渐进学习spring security 第十四篇 自定义验证码认证逻辑,自定义动态权限下URL白名单配置_springsecurity白名单配置_悬弧的博客-程序员秘密

文章目录学习目标回顾自定义认证逻辑,增加验证码校验创建项目:security-verify创建类:UsernamePasswordProvider编写获取验证码接口配置URL白名单测试如何添加URL白名单DefaultFilterInvocationSecurityMetadataSource 源码剖析将过滤器 MenuFilterInvocationSecurityMetadataSource 改为继承DefaultFilterInvocationSecurityMetadataSource配置URL白

快速复制浏览器控制台接口传参数据的小技巧_方便复制参数的_前端61的博客-程序员秘密

有的时候需要把接口需要传递的参数以JSON的形式,复制下来发送给后端去调试。控制台打印的数据:碰到这种比较复杂的数据,我们用微信等发送给后端人员调试的时候就比较麻烦。其实是有一个小技巧,是可以直接用json的形式直接复制的,就可以随便去复制了。先在控制台右键这个数据:选择store as global variable然后控制台会出现 temp1再在控制台输入copy(temp1)这样所有数据就在你的粘贴板里面了复制后的数据格式:{“id”: “2”,“adPic”: “http

阶乘问题 n!后最右边非0的数_yuxiaoyu.的博客-程序员秘密

阶乘问题时间限制: 1 Sec内存限制: 128 MB提交: 66解决: 13[提交][状态][讨论版]题目描述也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,60012的阶乘最右边的非零位为6。 写一个程序...

Linux中使用Docker安装Redis(拒绝踩坑)_Jeniclala的博客-程序员秘密

拉镜像docker search redisdocker pull redis新建挂载文件夹(路径自己定即可)mkdir -p /root/docker/redis/datamkdir -p /root/docker/redis/conf进入刚创建的 conf目录下,输入 "vim redis.conf"创建一个redis.conf文件,并将下面内容写入(配置保护、持久化、密码)或者在xftp中可视化新建文件。#bind 127.0.0.1 //允许远程连接protected.

iphone导出视频 无法连接到设备_拷贝iphone照片,显示无法连接设备?TRIZ 3秒钟解决..._weixin_39771987的博客-程序员秘密

手机存储满了,想把手机里面的照片和视频拷贝出来。 又不想交给苹果cloud的“苹果税”。USB手动连上IPHONE,结果每次复制了几百兆,就会弹出“无法连接设备”,导致拷贝失败。并且每次重新连接之后,删掉的照片又出现在手机上了。尝试一:直接度娘。删掉的照片又重新出现在手机里面!我的第一直觉就是apple cloud同步。度娘一搜,果然推荐了icloud的方案。没想到水木上这个问题,也讨论的热火朝天...

推荐文章

热门文章

相关标签