• 机器学习实战(一)Keras 人工神经网络简介


    1.使用顺序api建立神经网络

    1.1 基本模型结构

    使用的数据集是mnist数据集

    fashion_mnist=keras.datasets.fashion_mnist
    (X_train_full,y_train_full),(X_test,y_test)=fashion_mnist.load_data()
    
    X_valid,X_train=X_train_full[:5000]/255.0,X_train_full[5000:]/255.0
    y_valid,y_train=y_train_full[:5000],y_train_full[5000:]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.1.1 逐层添加

    import keras.models
    from keras.layers import Dense
    
    #先创建顺序模型
    model=keras.models.Sequential()
    #添加到模型中
    model.add(keras.layers.Flatten(input_shape=[28,28]))
    model=keras.models.Sequential()
    print(model)
    print(model.summary())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果:
    在这里插入图片描述

    1.1.2 传递一个层列表

    或者是直接在序列中传递一个列表

    model=keras.models.Sequential([keras.layers.Flatten(input_shape=[28,28]),keras.layers.Dense(300,activation='relu')])
    print(model)
    print(model.summary())
    
    • 1
    • 2
    • 3

    1.2 查看层结构的常用方法

    1.2.1 model.summary()

    在这里插入图片描述

    1.2.2 model.layers

    可以获得层列表,按其索引获取层,也可以按名称获取
    在这里插入图片描述

    1.2.2.1 获得层的名字
    h1=model.layers[1]
    print(h1.name)
    
    输出
    dense
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可以通过这种方式获得层名字

    1.2.2.1 获得层的权重和bias

    通过对指定层使用get_weights()来获得相应的权重和bias

    weight,bias=h1.get_weights()
    print(weight)
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    权重矩阵的形状取决于输入的形状

    1.2. 编译模型

    model.compile(loss="sparse_categorical_crossentropy",optimizer='sgd',metrics=['accuracy'])
    
    • 1

    需要指定:
    ①损失函数
    ②优化器

    1.3. 训练和评估模型

    history=model.fit(X_train,y_train,epochs=30,validation_data=(X_valid,y_valid))
    
    • 1

    只用了两个层效果比较差
    在这里插入图片描述

    1.3.1 传递验证集

    validation_data=(X_valid,y_valid)直接传递验证集
    model.fit(X_train,y_train,epochs=30,validation_data=(X_valid,y_valid))
    
    validation_split=0.1设置用于验证的训练集比例
    model.fit(X_train,y_train,epochs=30,validation_split=0.1)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.4 训练结果

    1.4.1展示训练结果

    pd.DataFrame(history.history).plot(figsize=(8,5))
    plt.grid(True)
    plt.gca().set_ylim(0,1)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    1.4.2 调整

    (1)首先检查学习率
    (2)尝试使用优化器
    (3)调整超参数

    1.4.3 在测试集上评估误差

    model.evaluate(X_test,y_test)
    
    • 1

    2.报错

    2.1 AttributeError: module ‘keras.datasets’ has no attribute ‘fashion_mnist’

    在这里插入图片描述

    import keras.datasets
    
    将上面的代码改为:
    from tensorflow import keras
    
    • 1
    • 2
    • 3
    • 4

    3. 函数式API

    3.1 层结构

    3.1.1 concatenate层

    keras.layers.Concatenate()[(input(),hidden2]
    
    • 1

    使用列表传入合并的层

  • 相关阅读:
    ImmunoChemistry艾美捷总细胞毒性试验试剂盒方案
    vnc服务
    企业架构LNMP学习笔记27
    【Springboot 入门培训】# 15 MyBatis-Thymeleaf 插件在项目中的应用
    【面试题分享】重现 string.h 库常用的函数
    链表 C语言
    重磅!元宇宙招聘会来袭,60多所高校学生参加...
    知识点总结 2022-8-16
    Dubbo 之 线程池
    PPT中的文字跟随Excel动态变化,且保留文字格式
  • 原文地址:https://blog.csdn.net/weixin_50862344/article/details/126868143