keras笔记

1)embedding层

embedding(vocab_size,64,input_length=maxword) 是 将用整数索引表示的单词所构成的句子,映射成使用向量表示的单词 构成句子。 他的输入是 batch_size 个句子,每个句子是maxword大小,即(batch,maxword),经过此层后,变为(batch,maxword,64) 当训练结束后,每个单词都会 学到自己的词向量。自己理解:当embedding层后加一个conv1d时。64相当于channel。
NOTE:

  • embedding层可以用来自己训练词向量,设置trainable=True。
  • 也可以使用训练好的词向量,设置trainable=False.并传入词向量矩阵。具体代码:
embedding_layer = Embedding(input_dim=vocb_size,
                            output_dim=EMBEDDING_DIM,
                            weights=[embedding_matrix],
                            input_length=MAX_SEQUENCE_LENGTH,
                            trainable=False)

此时embedding层参数为:input_dim=vocb_size,意思是构建的词典的大小,所有单词的个数。即embedding_matrix的行数。output_dim为构建好的词向量矩阵的嵌入维度。即embedding_matrix的列数。weights即为构建好的词向量。input_length为输入的 每句话的单词个数(之前已经进行过padding操作)。
embedding层的输入为(batch,maxword)
输出为(batch,maxword,embedding_dim)。即将单词的整数索引用训练好的词向量来替代。

2)LSTM

lstm需要注意的就是两种参数设置。一个是return_sequences,一个是return_state。
return_sequences是用来控制输出hidden_state的。
return_sequences=True即输出所有的hidden_state。
return_sequences=False即输出最后一个时间步的hidden_state。
return_state 是用来控制最后时间步state的,包括hidden_state和cell_state。
(1)h = LSTM(x)
return_sequences和return_state默认是false。此时只返回一个hidden state值.
(2)sequence,state_h,state_c = LSTM(1,return_sequence=False,return_state=True)
此时sequence是最后一个时间步的hidden_state.
state_h为最后一个时间步的hidden_state
state_c为最后一个时间步的cell_state.
(3) sequence,state_h,state_c = LSTM(1,return_sequence=True,return_state=True)
此时,sequence为所有时间步的hidden_state.
state_h为最后一个时间步的hidden_state
state_c为最后一个时间步的cell_state.

3) 卷积层维度

Conv2D(filters = 64, kernel_size = 5,padding=‘same’,input_shape=(128,128,3)) 在这里 当Con2D作为第一层时,需要指定输入的维度,(128,128,3)指的是128*128像素的图片,它有3个通道。 在nunpy中构建 shape为 128 * 128 * 3的array时,不太好理解,因为我之前写过的一般都是 3 *128 * 128的图片,可以很直观的理解每个通道都在不同的维度。 例如 3个通道,就代表有3个二维矩阵 但在keras中,默认参数就是这样规定的,可以通过data_format=‘channels_first’来设置将输入的第一个维度认为是channel。使用Con2D时,输入一张图片,输入的维度是(宽,高,通道) 使用Con1D时,输入的是一个句子,输入的维度是(单词个数,词向量维度),本例中是(400,64),一句话有400个单词,每个单词使用64维来表示。这里的64就相当于channel。

NOTE:

1.

data_format: A string, one of “channels_last” or"channels_first".“channels_last”(batch, height, width, channels)“channels_first”(batch, channels, height, width).keras 中,Conv2D有的输入数据有两种格式。一个是通道在前,一个是通道在后。不需指定batch,但要指定hight,width,channels.

2. padding

这里的padding并不是cnn教程里的四周填补
padding =‘same’ n_output = n_input/s 向上取整
padding = ‘valid’ n_output = (n_input-f+1) /s 向上取整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值