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


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日

相关文章

  • Tensorflow–卷积的梯度反向传播

    一.valid卷积的梯度 我们分两种不同的情况讨论valid卷积的梯度:第一种情况,在已知卷积核的情况下,对未知张量求导(即对张量中每一个变量求导);第二种情况,在已知张量的情况下,对未知卷积核求导(即对卷积核中每一个变量求导) 1.已知卷积核,对未知张量求导 我们用一个简单的例子理解valid卷积的梯度反向传播。假设有一个3×3的未知张量x,以及已知的2x…

    卷积神经网络 2023年4月5日
    00
  • 图像处理—基础(模板、卷积运算) 图像处理:基础(模板、卷积运算)

    转自:图像处理:基础(模板、卷积运算) 1.使用模板处理图像相关概念:            模板:矩阵方块,其数学含义是一种卷积运算。      卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相                乘,所有乘积之和作为区域中心像素的新值。      卷积核:卷积时使用到的权用一…

    卷积神经网络 2023年4月8日
    00
  • pytorch Dataset数据集和Dataloader迭代数据集

    import torch from torch.utils.data import Dataset,DataLoader class SmsDataset(Dataset): def __init__(self): self.file_path = “./SMSSpamCollection” self.lines = open(self.file_path,…

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

    Recurrent Neural Network(RNN) – 循环神经网络(part 3) Gated RNN 0 前言 其实这节课的内容跟我其他这个系列的博客是不属于同一个课程的,但是因为是在 B 站看的视频,up 主可能不小心弄混了,于是我就也一起看了,多学点总没什么错。 虽然不是同一门课,但是确实是同一个老师,也是极其学习的内容,所以就当做一门课也没…

    2023年4月8日
    00
  • 升级keras解决load_weights()中的未定义skip_mismatch关键字问题

    下面是关于“升级Keras解决load_weights()中的未定义skip_mismatch关键字问题”的完整攻略。 load_weights()中的问题 在使用Keras的load_weights()方法加载模型权重时,可能会出现skip_mismatch未定义的问题。这是因为在早期版本的Keras中,skip_mismatch参数是不存在的,而在新版本…

    Keras 2023年5月15日
    00
  • 机器学习笔记:sklearn.model_selection.train_test_split切分训练、测试集

    一、背景 接上所叙,在对比训练集、验证集、测试集之后,实战中需要对数据进行划分。 通常将原始数据按比例划分为:训练集、测试集。 可以利用 sklearn.model_selection.train_test_split 方法实现。 二、介绍 使用语法为: x_train, x_test, y_train, y_test = sklearn.model_sel…

    机器学习 2023年4月12日
    00
  • OpenCV在矩阵上的卷积

    转载请注明出处!!!http://blog.csdn.net/zhonghuan1992            在openCV官网上说是戴面具,事实上就是又一次计算一下矩阵中的每个value,那么怎么计算呢,依据该像素点的周围信息,用一个加权的公式来进行计算。那么如今就要看,周围的信息是怎样被加权的。让我们想一下这种方式,请看以下的公式:          …

    2023年4月8日
    00
  • 解决keras,val_categorical_accuracy:,0.0000e+00问题

    下面是关于“解决keras,val_categorical_accuracy:,0.0000e+00问题”的完整攻略。 问题描述 在使用Keras训练模型时,可能会出现以下问题: val_categorical_accuracy: 0.0000e+00 这个问题通常是由于在模型编译时,没有正确指定评估指标,导致在训练过程中无法正确计算验证集的准确率。 解决方…

    Keras 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部