【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

深度学习基于神经网络而来,学习起来比较复杂。虽然google的tensorflow框架给我们提供了方便,但是使用上还是有很多不明白的地方。现在有了keras之后,大家应该就没有烦恼了。keras相当于在tensorflow上面封装了一层,大部分参数是用默认参数。使用起来得心应手。关于安装方法,我一般都是在ubuntu 16.04上面安装。比如先pip install tensorflow; pip install keras就可以完成安装了。一般来说,做到这几步就可以了,

1、构建sequential模型

from keras.models import Sequentialmodel = Sequential()

2、添加网络层

from keras.layers import Dense, Activationmodel.add(Dense(units=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(units=10))
model.add(Activation("softmax"))

3、编译模型,注意损失函数和优化函数两个变量

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

4、训练数据

model.fit(x_train, y_train, epochs=5, batch_size=32)

5、评估数据

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

6、如果不需要评估数据,可以直接预测数据

classes = model.predict(x_test, batch_size=128)

7、更多内容

关于keras的内容,更多可以参考官方网站,或者它的中文网站https://keras-cn.readthedocs.io/en/latest/#30skeras。关于机器学习或者深度学习这块,个人觉人keras和sklearn、cv2这些开源库一样好用,建议大家多多练习。

import numpy as np
import kerasfrom keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.optimizers import SGD# Generate dummy data
x_train = np.random.random((100, 100, 100, 3))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
x_test = np.random.random((20, 100, 100, 3))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(20, 1)), num_classes=10)model = Sequential()
# input: 100x100 images with 3 channels -> (100, 100, 3) tensors.
# this applies 32 convolution filters of size 3x3 each.
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100, 3)))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd)model.fit(x_train, y_train, batch_size=32, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=32)

ps:

有兴趣的同学可以关注一下百度的paddlepaddle,即https://github.com/PaddlePaddle/Paddle。个人感觉也非常不错,和keras很像。此外,现在windows平台只有python3才可以安装tensorflow,所以keras也需要在python3上面运行。现在python27最晚在2020年一月份失去支持,大家也可以早点转到python3上面去。

随想录(keras入门)相关推荐

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

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

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

    Keras入门(一)搭建深度神经网络(DNN)解决多分类问题 参考文章: (1)Keras入门(一)搭建深度神经网络(DNN)解决多分类问题 (2)https://www.cnblogs.com/jc ...

  3. keras 入门教程

    keras 入门教程 Keras 是一个用于构建和训练深度学习模型的高级 Python 库.它的目的是简化深度学习模型的构建过程,使得深度学习更易于理解和使用.如果你想入门 Keras,可以参考以下教 ...

  4. keras入门教程 1.线性回归建模(快速入门)

    Keras入门教程 1.线性回归建模(快速入门) 2.线性模型的优化 3.波士顿房价回归 (MPL) 4.卷积神经网络(CNN) 5.使用LSTM RNN 进行时间序列预测 6.Keras 预训练模型 ...

  5. tensorflow.keras入门1

    tensorflow.keras入门1-基本函数介绍 目前keras API 已经整合到 tensorflow中,在tensorflow中通过tf.keras就可以调用keras. import te ...

  6. GAN学习:Keras入门

    Keras入门 1.环境配置 2.搭建一个简单的网络 3.多元线性回归 3.1 准备数据集 3.2 环境配置 3.2代码 3.4 结果 4.全链接模型之手写数字识别模型 5.优化手写数字识别模型 6. ...

  7. Keras入门教程 3.波士顿房价回归 (MPL)

    Keras入门教程 1.线性回归建模(快速入门) 2.线性模型的优化 3.波士顿房价回归 (MPL) 4.卷积神经网络(CNN) 5.使用LSTM RNN 进行时间序列预测 6.Keras 预训练模型 ...

  8. Keras入门必读教程:手把手从安装到解决实际问题

    导读:Keras是目前深度学习研究领域非常流行的框架. 作者:史丹青 来源:大数据DT(ID:hzdashuju) 01 Keras简介与安装 Keras是目前深度学习研究领域非常流行的框架,相比于T ...

  9. Tensorflow keras入门教程

    目录 1.Tensorflow与Keras 2.安装内置Keras的Tensorflow 3.Tensorflow内置的Keras教程 3.1.导入tf.keras 3.2.创建一个简单的模型 3.2 ...

最新文章

  1. 经典算法研究系列:二、Dijkstra 算法初探
  2. 浅谈 LiveData 的通知机制
  3. mysql 基于集_一种基于记录集查找特定行的方法_MySQL
  4. 深入了解UIAutomation 的API
  5. 一步一步学习 iOS 6 编程(第四版)正式发布!
  6. mysql search yum_CentOS 7 yum安装配置mysql
  7. java implements t_Java泛型——為什么“擴展T”允許而不是“實現T”?
  8. java输入做参数需要close吗_JAX-RS和java.time.LocalDate作为输入参数
  9. 前一天还在聊抢票,第二天就被裁了,年底是互联网行业的寒冬吗?
  10. Recommender Systems协同过滤
  11. form表单重置、清空方法记录
  12. 手机修改html离线网页内容,HTML5--离线web应用
  13. es6 扩展运算符 三个点(...)
  14. QGraphicsView 如何实现百度地图按照鼠标点进行放大缩小效果
  15. 增大图片(在图像分割、GAN、超分辨中经常用到)
  16. Pimple Containter 容器使用实例代码
  17. SAP Scripting Tracker基本使用技巧
  18. 进入Google十大排名的10个步骤
  19. ▲ Android 签到打卡效果
  20. Arthas(阿尔萨斯)简记

热门文章

  1. Windows server 2008 R2搭建主域控制器 + 辅域控制器
  2. submit与button区别提交区别
  3. 代码创建按钮,文本输入框
  4. web打印控件Lodop轻松输出清晰的图表和条码
  5. (转)用Ajax技术让IE Web Control Tree View实现大数据量读取
  6. 设计模式--6大原则--依赖倒置原则
  7. Docker部署Redis容器
  8. Anaconda下安装 TensorFlow 和 keras 以及连接pycharm
  9. navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
  10. AndroidStudio_Android中使用Handler实现非阻塞线程间通讯_跨线程更新UI_耗时处理完成后主动通知更新UI_在同一个activity用---Android原生开发工作笔记219