自己要搞深度学习,正好手上有本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入门的更多相关文章

  1. Keras入门(四)之利用CNN模型轻松破解网站验证码

    项目简介   在之前的文章keras入门(三)搭建CNN模型破解网站验证码中,笔者介绍介绍了如何用Keras来搭建CNN模型来破解网站的验证码,其中验证码含有字母和数字.   让我们一起回顾一下那篇文 ...

  2. keras 入门整理 如何shuffle,如何使用fit_generator 整理合集

    keras入门参考网址: 中文文档教你快速建立model keras不同的模块-基本结构的简介-类似xmind整理 Keras的基本使用(1)--创建,编译,训练模型 Keras学习笔记(完结) ke ...

  3. Keras入门(二)模型的保存、读取及加载

    本文将会介绍如何利用Keras来实现模型的保存.读取以及加载.   本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下: 具体的模型参数可以参考文章 ...

  4. Keras入门(一)搭建深度神经网络(DNN)解决多分类问题

    Keras介绍   Keras是一个开源的高层神经网络API,由纯Python编写而成,其后端可以基于Tensorflow.Theano.MXNet以及CNTK.Keras 为支持快速实验而生,能够把 ...

  5. Keras入门(六)模型训练实时可视化

      在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现.   本文将会分享如何在K ...

  6. 数据挖掘入门系列教程(十一)之keras入门使用以及构建DNN网络识别MNIST

    简介 在上一篇博客:数据挖掘入门系列教程(十点五)之DNN介绍及公式推导中,详细的介绍了DNN,并对其进行了公式推导.本来这篇博客是准备直接介绍CNN的,但是想了一下,觉得还是使用keras构建一个D ...

  7. keras 入门之 regression

    本实验分三步: 1. 建立数据集 2. 建立网络并训练 3. 可视化 import numpy as np from keras.models import Sequential from keras ...

  8. 深度学习:Keras入门(一)之基础篇

    1.关于Keras 1)简介 Keras是由纯python编写的基于theano/tensorflow的深度学习框架. Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结 ...

  9. 深度学习:Keras入门(二)之卷积神经网络(CNN)

    说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式 ...

  10. keras入门(三)搭建CNN模型破解网站验证码

    项目介绍   在文章CNN大战验证码中,我们利用TensorFlow搭建了简单的CNN模型来破解某个网站的验证码.验证码如下: 在本文中,我们将会用Keras来搭建一个稍微复杂的CNN模型来破解以上的 ...

随机推荐

  1. insert /*+append*/为什么会提高性能

    在上一篇的blog中 做了下使用,在归档和非归档下,做数据插入http://blog.csdn.net/guogang83/article/details/9219479.结论是在非归档模式下表设置为 ...

  2. jeffy-vim-v3.1.tar.gz

    下载链接: https://files.cnblogs.com/files/pengdonglin137/jeffy-vim-v3.1.tar.gz 1. 使用sublimemonokai配色 2. ...

  3. CentOS7 使用yum命令安装Java SDK(openjdk)

    CentOS 6.X 和 7.X 自带有OpenJDK runtime environment  (openjdk).它是一个在linux上实现开源的java 平台. 安装方式: 1.输入以下命令,以 ...

  4. SpringBoot2.0小程序支付功能实现weixin-java-pay

    SpringBoot2.0小程序支付功能实现weixin-java-pay WxJava - 微信开发 Java SDK(开发工具包); 支持包括微信支付.开放平台.公众号.企业微信/企业号.小程序等 ...

  5. yarn upgrade

    更新一个依赖 yarn upgrade 用于更新包到基于规范范围的最新版本 yarn upgrade --latest # 忽略版本规则,升级到最新版本,并且更新 package.json .

  6. C#/.NET基础视频[2018年][195集完]

    B站观看地址-无广告观看 https://www.bilibili.com/video/av21896829/ 前一两集 声音有点大 ,可以调大一点音量. 百度网盘下载地址 https://pan.b ...

  7. k8s cronjob设置作业失败后退出不重复执行

    Optional parameters backoffLimit: Number of retries for pods launched by the job. If you want your p ...

  8. Docker Mongo数据库主从同步配置方法

    一.具体操作方法 1.启两个Mongo容器 docker run --name mongo1 -p 21117:27017 -d mongo --noprealloc --smallfiles --r ...

  9. MATLAB 按条件进行加和

    用 find 命令仅仅是找到元素的序号. 这里使用sum 直接选取数组中的元素然后进行加和: a=[ ; ; ; ]; b=sum(a(a>=));

  10. DES算法原理完整版

    1.所需参数 key:8个字节共64位的工作密钥 data:8个字节共64位的需要被加密或被解密的数据 mode:DES工作方式,加密或者解密 2.初始置换 DES算法使用64位的密钥key将64位的 ...