keras基本函数介绍

一、to_categorical

from keras.utils import to_categorical
#类别向量定义
b = [0,1,2,3,2,1]
#调用to_categorical将b按照4个类别来进行转换,也就是b中数字只能来自【0,1,2,3】,因为是从0开始编码的。
b = to_categorical(b, 4)
print(b)

OUT:
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 1. 0.]
 [0. 1. 0. 0.]]

 

二、sparse_categorical_crossentropy

tf.keras.backend.sparse_categorical_crossentropy(
    target,
    output,
    from_logits=False,
    axis=-1
)

具有整数目标的分类交叉熵。

参数:

  • target:整数张量。例如维度是 [batch,max_len]
  • output:由softmax产生的张量(除非from_logits是True,在这种情况下output预计是logits)。例如维度 [batch,max_len,vocab_size]
  • from_logits:Boolean,无论output是softmax的结果,还是logits的张量。
  • axis:Int指定通道轴。axis=-1对应于数据格式channels_last',并且axis = 1对应于数据格式channels_first`。

返回:

输出张量。

 

from keras.layers import Input,Lambda,Dense
from keras.models import Model
from bert4keras.backend import keras, K
from bert4keras.optimizers import Adam
import numpy as np

input_data = Input(shape=(1,), dtype='float', name='input')
output=Dense(3, activation='softmax')(input_data)

model=Model(inputs=input_data,outputs=output)

cross_entropy = K.sparse_categorical_crossentropy(input_data, output)
model.add_loss(cross_entropy)
model.compile(optimizer=Adam(1e-5))

x=np.array([0, 1, 2])

model.fit(x,None,epochs=10000,batch_size=1)

model.predict(x)
out:
array([[0.36433217, 0.29800472, 0.33766317],
       [0.17361091, 0.48485544, 0.34153366],
       [0.06797539, 0.6481814 , 0.2838432 ]], dtype=float32)

 

三、pad_sequences函数

keras.preprocessing.sequence.pad_sequences(sequences, 
    maxlen=None,
    dtype='int32',
    padding='pre',
    truncating='pre', 
    value=0.)
  • sequences:浮点数或整数构成的两层嵌套列表
  • maxlen:None或整数,为序列的最大长度。大于此长度的序列将被截短,小于此长度的序列将在后部填0.
  • dtype:返回的numpy array的数据类型
  • padding:‘pre’或‘post’,确定当需要补0时,在序列的起始还是结尾补`
  • truncating:‘pre’或‘post’,确定当需要截断序列时,从起始还是结尾截断
  • value:浮点数,此值将在填充时代替默认的填充值0

举例:

a=[[1,2,4],[1,2]]
pad_sequences(a, maxlen=5, dtype='float32')


OUT:
array([[0., 0., 1., 2., 4.],
       [0., 0., 0., 1., 2.]], dtype=float32)

 

posted @ 2020-03-07 22:30  光彩照人  阅读(708)  评论(0)    收藏  举报