Keras 是一个用 Python 编写的高级神经网络 API

官网:https://keras.io/zh/


from keras.models import Sequential  # 神经网络各个层的容器
from keras.layers import Dense, Activation  # 安全求和的层 激活函数
from keras.optimizers import SGD  # 随机梯度下降算法
from sklearn.datasets import load_iris  # 数据集
from sklearn.preprocessing import LabelBinarizer
from sklearn.model_selection import train_test_split

iris = load_iris()
print(iris["target"])  # 标签化
print(LabelBinarizer().fit_transform(iris["target"]))  # 标签化
# 训练集 测试集
train_data, test_data, train_target, test_target = train_test_split(iris.data, iris.target, test_size=20)
labels_train = LabelBinarizer().fit_transform(train_target)
labels_test = LabelBinarizer().fit_transform(test_target)

# 模型训练
# 方式一  网络结构
model = Sequential(
    [
        Dense(5, input_dim=4),  # 第一层输出有5 输入对应 4个属性值
        Activation("relu"),  # 激活函数
        Dense(3),  # 可以省略
        Activation("sigmoid"),  # 激活函数
    ]
)
# 方式二
# model = Sequential()
# model.add(Dense(5,input=4)) # 一层一层往里面添加

# 构建优化器
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)  # decay步长 实质因子0.9
model.compile(optimizer=sgd, loss="categorical_crossentropy")  # 优化器 sgd 损失函数 categorical_crossentropy
model.fit(train_data, labels_train, epochs=200, batch_size=40)  # 训练200轮

print("测试结果:\n", model.predict_classes(test_data))  # 打印预测结果
model.save_weights("weights")  # 存  权重因子
model.load_weights('weights')  # 下次使用可以直接加载

iris["target"]:(输出)

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 2 2]

01码:(输出)

链接 提取码:grrn 

200轮训练过程:

链接  提取码:ml85 

测试结果:
 [1 2 2 2 2 2 0 0 1 2 2 1 2 0 2 1 1 0 1 1]

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐