keras 入门

Keras 的核心数据结构是模型。模型是用来组织网络层的方式。模型有两种,一种叫
Sequential 模型,另一种叫Model 模型。Sequential 模型是一系列网络层按顺序构成的栈,是单
输入和单输出的,层与层之间只有相邻关系,是最简单的一种模型。(直接就add完事了,和pytorch里面的seqeuntial一样)
Model 模型是用来建立更
复杂的模型的。
这里先介绍简单的Sequential 模型的使用(后面将会以一个示例来介绍Model 模型)。首先
是加载数据,这里我们假设数据已经加载完毕,是X_train, Y_train 和X_test, Y_test。然后构建模型:

from keras.models import Sequential 
from keras.layers import Dense, Activation 
model = Sequential() 
model.add(Dense(output_dim=64, input_dim=100)) 
model.add(Activation(“relu”)) 
model.add(Dense(output_dim=10)) 
model.add(Activation(“softmax”)) 

然后,编译模型,同时指明损失函数和优化器:

model.compile(loss=’categorical_crossentropy’, optimizer=’sgd’, metrics=[‘accuracy’]) 

注意这里,有个model.compile,直接把损失,优化器,评价(分类问题最典型就是acc)
最后,训练模型和评估模型:

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32) 
loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32) 

model.fit就是生成训练日志,返回一个History的对象,其History.history属性记录了损失函数和其他指标的数值随epoch变化的情况,如果有验证集的话,也包含了验证集的这些指标变化情况
实际上就是相当于pytorch不断向list依次加入层,然后sequential构成
这就是一个最简单的模型的使用。如果要搭建复杂的网络,可以使用Keras 的Model 模型,
它能定义多输出模型、含有共享层的模型、共享视觉模型、图片问答模型、视觉问答模型等。

还有就是用model进行直接构建

import tensorflow as tf

inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)

就相当于是嵌套式组成 输出作为输入

最最常用的实际上就是定义一个class(和pytorch一样)

class MyModel(tf.keras.Model):

  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)

  def call(self, inputs):
    x = self.dense1(inputs)
    return self.dense2(x)

model = MyModel()

同样的是继承keras.Model(pytorch是继承的nn.Module),同样在这里定义的是call作为前向函数,pytorch是forward作为前向函数
在MyModel类__init__函数中初始化需要的网络层,然后实现一个前向传播函数,来定义传播方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值