keras入门
自己要搞深度学习,正好手上有本keras之父写的深度学习书,于是就从keras入手吧。看了一个电影的二分类问题,确实很简单,可以熟悉深度学习的流程。首先熟悉了结果keras的模块,如model,Sequential等,这和numpy有什么区别吗?没有啊
有了keras框架,预处理图片数据,构建网络都很快,就像搭乐高积木一样。但是我在做一个猫狗识别network时,准确率一直在50%,数据和参数和书上的差不多,但是人家是70%,这是为什么?如何提高准确率,这也是深度学习领域的一个重要问题,如何发现问题?数据预处理?网络结构,网络参数?可以观察的数据只有loss和acc,所以设计神经网络有时候还真是一个技术活,多多练习,掌握一些基本的经验。
为什么很随意的一个dnn网络或者cnn网络,mnist数据集的识别精度可以达到90%,而这样区别明显的二分类问题效果却很差?看了数据集标注,没什么问题。网络结构也正常,不知道应该在哪里改进?然后看了kaggle上的一些竞赛代码,发现自己训练的数据太少(或者说迭代次数太少),吧epoch和steps_per_epoch调整了一下,损失函数慢慢降低,但是任然很慢,之前的训练都不到10分钟,现在看得一上午时间。
在看到keras的高级深度学习实践的过程中,有一个Embeding层对象没有看懂,看了官网的api文档也没弄明白是什么意思。但是今天看了教科书的一些讲解,有点一知半解。现在想来它就是一个自然语言处理中,将文本转换为词向量的一个工具,如果你的重点是cnn,cv方面,懂到这个程度就行了,毕竟效率很重要,不能荒废了,做无用功,这就是一种学习能力的体现,不在无用的地方浪费自己的时间。
keras中一个好用的地方就是集成了已经训练好的网络,比如vgg16,可以看一下源码和相关论文。
神经网络原理:
1、神经网络最基本的原理也是函数拟合,所以lose function就显得非常重要了,我们训练的目的之一就是减小损失函数,常用的损失函数参考:https://www.cnblogs.com/hypnus-ly/p/8047214.html,比如entropy_cross,比较两个概率分布的差异,同时又使得反向传播时好计算。
2、神经网络训练都是以一个batch为训练单位,即一批一批的训练,那么反向传播时怎么计算导数呢?可以体会,这个batch轴对于w没有什么影响,对于b有一些影响。只不过反向传播时,loss function取均值。
keras入门的更多相关文章
- Keras入门(四)之利用CNN模型轻松破解网站验证码
项目简介 在之前的文章keras入门(三)搭建CNN模型破解网站验证码中,笔者介绍介绍了如何用Keras来搭建CNN模型来破解网站的验证码,其中验证码含有字母和数字. 让我们一起回顾一下那篇文 ...
- keras 入门整理 如何shuffle,如何使用fit_generator 整理合集
keras入门参考网址: 中文文档教你快速建立model keras不同的模块-基本结构的简介-类似xmind整理 Keras的基本使用(1)--创建,编译,训练模型 Keras学习笔记(完结) ke ...
- Keras入门(二)模型的保存、读取及加载
本文将会介绍如何利用Keras来实现模型的保存.读取以及加载. 本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下: 具体的模型参数可以参考文章 ...
- Keras入门(一)搭建深度神经网络(DNN)解决多分类问题
Keras介绍 Keras是一个开源的高层神经网络API,由纯Python编写而成,其后端可以基于Tensorflow.Theano.MXNet以及CNTK.Keras 为支持快速实验而生,能够把 ...
- Keras入门(六)模型训练实时可视化
在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现. 本文将会分享如何在K ...
- 数据挖掘入门系列教程(十一)之keras入门使用以及构建DNN网络识别MNIST
简介 在上一篇博客:数据挖掘入门系列教程(十点五)之DNN介绍及公式推导中,详细的介绍了DNN,并对其进行了公式推导.本来这篇博客是准备直接介绍CNN的,但是想了一下,觉得还是使用keras构建一个D ...
- keras 入门之 regression
本实验分三步: 1. 建立数据集 2. 建立网络并训练 3. 可视化 import numpy as np from keras.models import Sequential from keras ...
- 深度学习:Keras入门(一)之基础篇
1.关于Keras 1)简介 Keras是由纯python编写的基于theano/tensorflow的深度学习框架. Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结 ...
- 深度学习:Keras入门(二)之卷积神经网络(CNN)
说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式 ...
- keras入门(三)搭建CNN模型破解网站验证码
项目介绍 在文章CNN大战验证码中,我们利用TensorFlow搭建了简单的CNN模型来破解某个网站的验证码.验证码如下: 在本文中,我们将会用Keras来搭建一个稍微复杂的CNN模型来破解以上的 ...
随机推荐
- GMA Round 1 奇怪的数列
传送门 奇怪的数列 已知数列{$a_n$},$a_1=1$,$a_{n+1}=a_n+\frac{1}{a_n}$,现在需要你估计$a_{233333}$的值,求出它的整数部分即可. 将原等式两边平方 ...
- idea不显示gradle的视图解决办法
选择build tool.找到gradle→Runner,把委托给IDE构建勾选,然后重新导入一次就好了.
- jquery自带的进度条功能如何使用?
弹出进度条:先做弹出的功能modal,再做进度条显示.在弹出的界面上增加进度条功能 $.ajax({ xhr: function() { var xhr = new window.XMLHttpReq ...
- golang 对slice的深拷贝 copy
测试 slice的地址 copy的时候 发现有问题: package main import "fmt" func main() { nums:=[]int{1,2,3,4,5} ...
- Canvas 和 SVG 的不同
Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个 ...
- hibernate JPA 使用懒加载时代理对象
hibernate延迟加载代理对象实际对象读取方式 public static <T> T deproxy (T obj) { if (obj == null) return obj; i ...
- GoAccess日志分析工具
1.1 GoAccess简介 GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: GoAccess 官网 https://goacc ...
- CAS的单点登录和oauth2的最大区别
CAS的单点登录时保障客户端的用户资源的安全 oauth2则是保障服务端的用户资源的安全 CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我(CAS客户端)的资源. oauth2获取的最终信 ...
- R语言︱处理缺失数据&&异常值检验、离群点分析、异常值处理
在数据挖掘的过程中,数据预处理占到了整个过程的60% 脏数据:指一般不符合要求,以及不能直接进行相应分析的数据 脏数据包括:缺失值.异常值.不一致的值.重复数据及含有特殊符号(如#.¥.*)的数据 数 ...
- ios 容错处理JKDataHelper和AvoidCrash
一.JKDataHelper 在大团队协同开发过程中,由于每个团队成员的水平不一,很难控制代码的质量,保证代码的健壮性,经常会发生由于后台返回异常数据造成app崩溃闪退的情况,为了避免这样情况使用JK ...