Kadetzzz 2022-08-01 15:01 采纳率: 100%
浏览 895
已结题

AttributeError: module 'keras.preprocessing.sequence' has no attribute 'pad_sequences'

在Keras中准备imdb数据时报错AttributeError: module 'keras.preprocessing.sequence' has no attribute 'pad_sequences'

from keras.datasets import imdb
from keras.preprocessing import sequence

max_features = 10000
maxlen = 500
batch_size = 32

print('Lodaing data...')
(input_train, y_train), (input_test, y_test) = imdb.load_data(num_words=max_features)
print(len(input_train), 'train sequences')
print(len(input_test), 'test sequences')

print('Pad sequences (sample x time)')
input_train = sequence.pad_sequences(input_train, maxlen=maxlen)
input_test = sequence.pad_sequences(input_test, maxlen=maxlen)
print('input_train shape:', input_train.shape)
print('input_test shape:', input_test.shape)

运行结果如下:

Lodaing data...
25000 train sequences
25000 test sequences
Pad sequences (sample x time)
Traceback (most recent call last):
  File "D:\Projects\LSTM\LSTM1\dataset.py", line 15, in <module>
    input_train = sequence.pad_sequences(input_train, maxlen=maxlen)
AttributeError: module 'keras.preprocessing.sequence' has no attribute 'pad_sequences'

重新安装过keras还是有这个问题,我的Keras版本是2.9.0,tensorflow的版本是2.9.1

  • 写回答

3条回答 默认 最新

  • kakaccys 2022-08-01 15:45
    关注

    几种解决方法
    1.keras2.9.0没这个方法了,要达到相同效果就用TextVectorization,具体用法查下官方文档就知道
    2.把keras降级到2.3.1,pad_sequence是支持的,但tensorflow也要降级到2.2以下左右。
    3.自己手写pad_sequence,这个函数并不难,无非超过最大长度截取到最大长度,没到最大长度的以当前batch的最大长度为最大长度补0
    tensorflow项目组老是把简单的变复杂,pytorch的流行是有原因的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 创建了问题 8月1日

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大