学习笔记||Tensorflow-函数式api

函数api核心思想在于可以调用,每一层都可以调用,需要哪一层调用哪一层

import tensorflow as tf 
from tensorflow import keras
import matplotlib.pyplot as plt
%matplotlib inline
#导入fashion
fashion_mnist = keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()

#归一化
train_images = train_images / 255.0
test_images = test_images / 255.0

#看一下输入的形状
train_images.shape

#输入使用keras提供的input方法
input = keras.Input(shape=(28,28)) #明确输入形状

#函数调用
x = keras.layers.Flatten()(input) 
#可以将keras.layers.Flatten()这一层看作调用的函数,传入的参数是input

x = keras.layers.Dense(32,activation='relu')(x) 
#keras.layers.Dense(32,activation='relu')是调用的函数,输出是32,激活函数relu
x = keras.layers.Dropout(0.5)(x)
x = keras.layers.Dense(64, activation='relu')(x)
output = keras.layers.Dense(10, activation='softmax')(x)

#从上面input到output之间就是建立完成的网络,注意要逐层调用
#接下来建立模型
model = keras.Model(inputs=input,outputs=output)

model.summary()

#模型编译
model.compile(optimizer = 'adam',
             loss='sparse_categorical_crossentropy',
             metrics=['accuracy'])

#模型运行
history = model.fit(train_images, 
                    train_labels,
                   epochs=30,
                   validation_data=(test_images,test_labels))

函数api的好处在于可以建立多输入多输出的模型:

input1 = keras.Input(shape=(28,28))
input2 = keras.Input(shape=(28,28))

x1 = keras.layers.Flatten()(input1)
x2 = keras.layers.Flatten()(input2)

#用一个keras.layers.concatenate([x1,x2])连接在一起,比较两个是不是同一类(相当于逻辑回归)
x = keras.layers.concatenate([x1,x2])

x = keras.layers.Dense(64, activation='relu')(x)
output = keras.layers.Dense(10, activation='sigmoid')(x) #逻辑回归注意激活函数

model = keras.Model(inputs=[input1,input2],outputs=output)

model.summary() #可以在模型分层中看到有分叉,后来又合并

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值