• 吴裕雄--天生自然TensorFlow高层封装:Keras-多输入输出


    # 1. 数据预处理。
    import keras
    from keras.models import Model
    from keras.datasets import mnist
    from keras.layers import Input, Dense
    from tflearn.layers.core import fully_connected
    
    num_classes = 10
    img_rows, img_cols = 28, 28
     
    # 通过Keras封装好的API加载MNIST数据。
    (trainX, trainY), (testX, testY) = mnist.load_data()
    trainX = trainX.reshape(trainX.shape[0], img_rows * img_cols)
    testX = testX.reshape(testX.shape[0], img_rows * img_cols)
    
    trainX = trainX.astype('float32')
    testX = testX.astype('float32')
    trainX /= 255.0
    testX /= 255.0
    
    trainY = keras.utils.to_categorical(trainY, num_classes)
    testY = keras.utils.to_categorical(testY, num_classes)
    # 2. 定义模型。
    # 定义两个输入。
    input1 = Input(shape=(784,), name = "input1")
    input2 = Input(shape=(10,), name = "input2")
    
    # 定义第一个输出。
    x = Dense(1, activation='relu')(input1)
    output1 = Dense(10, activation='softmax', name = "output1")(x)
    
    # 定义第二个输出。
    y = keras.layers.concatenate([x, input2])
    output2 = Dense(10, activation='softmax', name = "output2")(y)
    
    model = Model(inputs=[input1, input2], outputs=[output1, output2])
    
    # 定义损失函数、优化函数和评测方法。
    model.compile(loss=keras.losses.categorical_crossentropy,optimizer=keras.optimizers.SGD(),loss_weights = [1, 0.1],metrics=['accuracy'])
    # 3. 模型训练。
    model.fit([trainX, trainY], [trainY, trainY],batch_size=128,epochs=20,validation_data=([testX, testY], [testY, testY]))

  • 相关阅读:
    为什么利用多个域名来存储网站资源会更有效?
    事件绑定和普通事件的区别
    浏览器地址栏输入一个URL后回车,将会发生的事情
    JS数据类型及数据转换
    JS中的NaN和isNaN
    大数据的结构和特征
    系统重装后,如何重新找回hexo+github搭建的博客
    javascript操作符
    html头部
    html中链接的使用方法及介绍
  • 原文地址:https://www.cnblogs.com/tszr/p/12096581.html
Copyright © 2020-2023  润新知