#encoding=utf-8
import numpy as np
from keras.models import Sequential
from keras.layers import Dense,Activation#激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递activation参数实现。
from keras.optimizers import SGD#随机梯度下降法,支持动量参数,支持学习衰减率,支持Nesterov动量。 '''
快速开始序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是“一条路走到黑”。 可以通过向Sequential模型传递一个layer的list来构造该模型: from keras.models import Sequential
from keras.layers import Dense, Activation model = Sequential([
Dense(32, units=784),
Activation('relu'),
Dense(10),
Activation('softmax'),
]) 也可以通过.add()方法一个个的将layer加入模型中: model = Sequential()
model.add(Dense(32, input_shape=(784,)))
model.add(Activation('relu')) 指定输入数据的shape 模型需要知道输入数据的shape,因此,Sequential的第一层需要接受一个关于输入数据shape的参数,
后面的各个层则可以自动的推导出中间数据的shape,因此不需要为每个层都指定这个参数。有几种方法来为第一层指定输入数据的shape
传递一个input_shape的关键字参数给第一层,input_shape是一个tuple类型的数据,其中也可以填入None,
如果填入None则表示此位置可能是任何正整数。数据的batch大小不应包含在其中。
有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定输入数据shape。
一些3D的时域层支持通过参数input_dim和input_length来指定输入shape。
如果你需要为输入指定一个固定大小的batch_size(常用于stateful RNN网络),
可以传递batch_size参数到一个层中,例如你想指定输入张量的batch大小是32,数据shape是(6,8),
则你需要传递batch_size=32和input_shape=(6,8)。 model = Sequential()
model.add(Dense(32, input_dim=784)) model = Sequential()
model.add(Dense(32, input_shape=784)) 编译 在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数: 优化器optimizer:该参数可指定为已预定义的优化器名,如rmsprop、adagrad,或一个Optimizer类的对象. 损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy、mse,也可以为一个损失函数。详情见losses 指标列表metrics:对分类问题,我们一般将该列表设置为metrics=['accuracy']。
指标可以是一个预定义指标的名字,也可以是一个用户定制的函数.指标函数应该返回单个张量,
或一个完成metric_name - > metric_value映射的字典 '''
def main():
from sklearn.datasets import load_iris
iris = load_iris()
print(iris["target"])
from sklearn.preprocessing import LabelBinarizer
print LabelBinarizer().fit_transform(iris["target"]) from sklearn.model_selection import train_test_split
train_data, test_data, train_traget, test_target = train_test_split(iris.data, iris.target, test_size=0.2,random_state=1)
labels_train = LabelBinarizer().fit_transform(train_traget)
labels_test = LabelBinarizer().fit_transform(test_target) model= Sequential([
Dense(5,input_dim=4),
Activation("relu"),#激活函数
Dense(3),
Activation("sigmoid"),#激活函数自己看去。 ]) sgd = SGD(lr=0.01,decay=1e-6,momentum=0.9,nesterov=True)
model.compile(optimizer=sgd,loss="categorical_crossentropy")
model.fit(train_data,labels_train,nb_epoch=200,batch_size=40)
print(model.predict_classes(test_data))
model.save_weights("./python_source/w")
model.load_weights("./python_source/w")
#使用这个是会出现错误提示缺少h5py,直接pip install h5py 就可以了。
if __name__ == '__main__':
main()

 

keras 实现人工神经网络的更多相关文章

  1. neurosolutions 人工神经网络集成开发环境 keras

    人工神经网络集成开发环境 :  http://www.neurosolutions.com/ keras:   https://github.com/fchollet/keras 文档    http ...

  2. keras人工神经网络构建入门

    //2019.07.29-301.Keras 是提供一些高度可用神经网络框架的 Python API ,能帮助你快速的构建和训练自己的深度学习模型,它的后端是 TensorFlow 或者 Theano ...

  3. [DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

    先一层一层的说卷积神经网络是啥: 1:卷积层,特征提取 我们输入这样一幅图片(28*28): 如果用传统神经网络,下一层的每个神经元将连接到输入图片的每一个像素上去,但是在卷积神经网络中,我们只把输入 ...

  4. [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法

    前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...

  5. C#中调用Matlab人工神经网络算法实现手写数字识别

    手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写 ...

  6. 开源的c语言人工神经网络计算库 FANN

    这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人 ...

  7. 机器学习笔记之人工神经网络(ANN)

    人工神经网络(ANN)提供了一种普遍而且实际的方法从样例中学习值为实数.离散值或向量函数.人工神经网络由一系列简单的单元相互连接构成,其中每个单元有一定数量的实值输入,并产生单一的实值输出. 上面是一 ...

  8. 人工神经网络(Artificial Neural Networks)

    人工神经网络的产生一定程度上受生物学的启发,因为生物的学习系统是由相互连接的神经元相互连接的神经元组成的复杂网络.而人工神经网络跟这个差不多,它是一系列简单的单元相互密集连接而成的.其中每个单元有一定 ...

  9. 人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五)

    原文:人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五) 前面4篇文章说的是模糊系统,它不同于传统的值逻辑,理论基础是模糊数学,所以有些朋友看着有点迷糊,如果有兴趣建议参 ...

随机推荐

  1. uvm设计分析——reg

    项目中的reg_model一般只有一份,set到reg_sequence上,所以多个sequence并行启动结束的时候,reg model会成为一个共享资源. uvm_reg_field中的volat ...

  2. PHP 批量操作删除,支持单个删除

    PHP  执行部分: <?php include('checkadmin.php'); header('Content-Type: text/html; charset=utf-8'); if( ...

  3. 千行代码入门Python

    这个是从网上找到的一份快速入门python的极简教程,大概一千行左右,个人觉得不错,特此收藏以备后用. # _*_ coding: utf-8 _*_ """类型和运算- ...

  4. 在vue项目中引入jquery

    在vue项目中引入jquerycnpm install jquery --save在main.js中引入,加入下面这行代码:import 'jquery'注:有些项目是按需加载的,在main.js里面 ...

  5. C/C++ strict-aliasing

    最近发现了一个奇怪的编译参数-fno-strict-aliasing,好奇之下做了一点研究: 重点参考Understanding C/C++ Strict Aliasing: 所谓的aliasing就 ...

  6. 01:open-falcon入门篇

    open-falcon其他篇 目录: 1.1 openfalcon介绍 1.2 open-falcon架构 1.1 openfalcon介绍返回顶部   openfalcon官网: https://b ...

  7. Bugku-CTF之管理员系统+程序员本地网站

    Day12 管理员系统 http://123.206.31.85:1003/ flag格式flag{}  

  8. 若快打码平台python开发文档修改版

    一.打码的作用 在进行爬虫过程中,部分网站的登录验证码是比较简单的,例如四个英文数字随机组合而成的验证码,有的是全数字随机组成的验证码,有的是全中文随机组成的验证码.为了爬虫进行自动化,需要解决自动登 ...

  9. public,private,protected,以及default时的区别

    作用域    当前类   同一package     子孙类   其他package public       √                 √                    √    ...

  10. Django2.1.3 smtp 邮件 553报警

    用网易邮箱smtp发邮件时候一直报警553权限问题 smtplib.SMTPSenderRefused at: (553, b'Mail from must equal authorized user ...