Keras读书笔记----预处理

本文详细介绍了Keras中的预处理技术,包括序列预处理的pad_sequences和skipgrams,文本预处理的句子分割、one-hot编码及分词器,以及图像预处理的ImageDataGenerator及其方法。这些预处理技术对于数据清洗和模型训练至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 序列预处理

1.1. 填充序列pad_sequences

将长为 nb_samples 的序列(标量序列)转化为形如 (nb_samples,nb_timesteps) 2D numpy array。如果提供了参数 maxlen , nb_timesteps=maxlen ,否则其值为最长序列的长度。其他短于该长度的序列都会在后部填充0以达到该长度。
keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype='int32')
  • sequences:浮点数或整数构成的两层嵌套列表
  • maxlen: None或整数,为序列的最大长度。大于此长度的序列将被截短,小于此长度的序列将在后部填0.
  • dtype:返回的numpy array的数据类型
  • padding: ‘pre’或‘post’,确定当需要补0时,在序列的起始还是结尾补
  • truncating: ‘pre’或‘post’,确定当需要截断序列时,从起始还是结尾截断
  • value:浮点数,此值将在填充时代替默认的填充值0

1.2. 跳字skipgrams

skipgrams将一个词向量下标的序列转化为下面的一对tuple:
对于正样本,转化为( word, word in the same window)

对于负样本,转化为( word, random word from the vocabulary)

keras.preprocessing.sequence.skipgrams(sequence, vocabulary_size, window_size=4, negative_samples=1., shuffle=True, categorical=False, sampling_table=None)

  • sequence:下标的列表,如果使用sampling_tabel,则某个词的下标应该为它在数据库中的顺序。(从1开始)
  • vocabulary_size:整数,字典大小
  • window_size:整数,正样本对之间的最大距离
  • negative_samples:大于0的浮点数,等于0代表没有负样本,等于1代表负样本与正样本数目相同,以此类推(即负样本的数目是正样本的 negative_samples 倍)
  • shuffle:布尔值,确定是否随机打乱样本
  • categorical:布尔值,确定是否要使得返回的标签具有确定类别
  • sampling_table:形如 (vocabulary_size,) 的numpy array,其中 sampling_table[i] 代表没有负样本或随机负样本。等于1为与正样本的数目相同 采样到该下标为i的单词的概率(假定该单词是数据库中第i常见的单词)

函数的输出是一个 (couples,labels) 的元组,其中:
couples 是一个长为2的整数列表: [word_index,other_word_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值