keras基于多层感知器的softmax多分类 – kerl

yizhihongxing


keras基于多层感知器的softmax多分类

# 基于多层感知器的softmax多分类:
```
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
import numpy as np

x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

model = Sequential()

model.add(Dense(64, activation=\'relu\',input_dim=20)
model.add(Dropout(0.5))
model.add(Dense(64, 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,
metrics=[\'accuracy\'])

model.fit(x_train, y_train,epochs=20,batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
```

# MLP的二分类:
```
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Dropout

x_train = np.random.random((1000, 20))
y_train = np.random.randint(2, size=(1000, 1))
x_test = np.random.random((100, 20))
y_test = np.random.randint(2, size=(100, 1))

model = Sequential()
model.add(Dense(64, input_dim=20, activation=\'relu\'))
model.add(Dropout(0.5))
model.add(Dense(64, activation=\'relu\'))
model.add(Dropout(0.5))
model.add(Dense(1, activation=\'sigmoid\'))

model.compile(loss=\'binary_crossentropy\',
optimizer=\'rmsprop\',
metrics=[\'accuracy\'])
model.fit(x_train, y_train,
epochs=20,
batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
```
# 类似VGG的卷积神经网络:
```
import numpy as np
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.optimizers import SGD

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()

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)
```
# 使用LSTM的序列分类
```
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import Embedding
from keras.layers import LSTM

model = Sequential()
model.add(Embedding(max_features, output_dim=256))
model.add(LSTM(128))
model.add(Dropout(0.5))
model.add(Dense(1, activation=\'sigmoid\'))

model.compile(loss=\'binary_crossentropy\',
optimizer=\'rmsprop\',
metrics=[\'accuracy\'])

model.fit(x_train, y_train, batch_size=16, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=16)
```

# 使用1D卷积的序列分类
```
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import Embedding
from keras.layers import Conv1D, GlobalAveragePooling1D, MaxPooling1D

model = Sequential()
model.add(Conv1D(64, 3, activation=\'relu\', input_shape=(seq_length, 100)))
model.add(Conv1D(64, 3, activation=\'relu\'))
model.add(MaxPooling1D(3))
model.add(Conv1D(128, 3, activation=\'relu\'))
model.add(Conv1D(128, 3, activation=\'relu\'))
model.add(GlobalAveragePooling1D())
model.add(Dropout(0.5))
model.add(Dense(1, activation=\'sigmoid\'))

model.compile(loss=\'binary_crossentropy\',
optimizer=\'rmsprop\',
metrics=[\'accuracy\'])

model.fit(x_train, y_train, batch_size=16, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=16)
```

发表于
2020-06-02 10:48 
kerl 
阅读(618
评论(0
编辑 
收藏 
举报
 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:keras基于多层感知器的softmax多分类 – kerl - Python技术站

(0)
上一篇 2023年4月8日 上午9:48
下一篇 2023年4月8日

相关文章

  • 【模式识别与机器学习】——3.8可训练的确定性分类器的迭代算法

    定义: 梯度是一个向量,它的最重要性质就是指出了函数f在其自变量y增加时最大增长率的方向。 负梯度指出f的最陡下降方向 利用这个性质,可以设计一个迭代方案来寻找函数的最小值。 采用梯度法求解的基本思想 对感知器算法 式中的w(k)、xk随迭代次数k而变,是变量。 定义一个对错误分类敏感的准则函数J(w, x)。先任选一个初始权向量w(1),计算准则函数J的梯…

    机器学习 2023年4月10日
    00
  • TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 运行步骤 1.从 YOLO 官网下载 YOLOv3 权重 wget https://pjreddie.com/media/files/yolov3.weights 下载过程如图: 2.转换 Darknet YOLO 模型为 K…

    2023年4月8日
    00
  • 目标检测: Faster R-CNN原理

    Faster R-CNN论文地址:  https://arxiv.org/pdf/1506.01497.pdf 1 概述: Fast R-CNN仍然使用selective search, 会存在一些问题:1 使用selective search获取候选框, 这是在CPU上运算的, 会出现性能瓶颈, 没有充分利用GPU加速;2 统一的一套候选框并未对特定数据集…

    2023年4月8日
    00
  • 李宏毅机器学习笔记-12.2 循环神经网络(Recurrent Neural Network-RNN)- part 2

    Recurrent Neural Network(RNN) – 循环神经网络(part 2) 1 训练 RNN 1.1 定义 Loss 如上图中,每一个单词对应一个 Slot,将句子按顺序丢进 Network 中,产生一个输出 y,将每个 y 与预期的正确输出做 cross entropy,然后累加起来,就是最终的 Loss。(注意,顺序不能打乱)。 1.2…

    2023年4月8日
    00
  • 解决ROC曲线画出来只有一个点的问题

    以下是关于“解决 ROC 曲线画出来只有一个点的问题”的完整攻略,其中包含两个示例说明。 示例1:使用 sklearn.metrics.roc_curve 绘制 ROC 曲线 步骤1:导入必要库 在使用 sklearn.metrics.roc_curve 绘制 ROC 曲线之前,我们需要导入一些必要的库,包括sklearn.metrics和matplotli…

    Keras 2023年5月16日
    00
  • 【神经网络】目标检测——RCNN

    test阶段: 用Selective Search招两千左右的Rigion Proposal,并且图像四周加16个像素,再wrap最为CNN输入(227*227*3),这个是Alexnet的input。之所以这样是可以很好地利用Alexnet的结果; 用CNN特征提取特征(2000*4096)。网络结构就是AlexNet,输入227*227*3,第五层输出6…

    2023年4月8日
    00
  • 基于keras中IMDB的文本分类 demo

        本次demo主题是使用keras对IMDB影评进行文本分类: import tensorflow as tf from tensorflow import keras import numpy as np print(tf.__version__) imdb = keras.datasets.imdb (train_data, train_label…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部