keras 的 example 文件 reuters_mlp.py 解析

该文件是一个文本分类的示例,

数据集采用路透社的新闻,我们可以把其内容解析一下:

word_index = reuters.get_word_index()
word_index = {k: (v + 3) for k, v in word_index.items()}
word_index["<PAD>"] = 0
word_index["<START>"] = 1
word_index["?"] = 2  # unknown
word_index["<UNUSED>"] = 3

reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])

def decode_review(text):
    return ' '.join([reverse_word_index.get(i, '?') for i in text])

for i in range(10):
    print(decode_review(x_train[i]))
    print(y_train[i])

就可以看到类似这样的新闻原文:

<START> ? ? said as a result of its december acquisition of ? co it expects earnings per share in 1987 of 1 15 to 1 30 dlrs per share up from 70 cts in 1986 the company said pretax net should rise to nine to 10 mln dlrs from six mln dlrs in 1986 and ? ? revenues to 19 to 22 mln dlrs from 12 5 mln dlrs it said cash ? per share this year should be 2 50 to three dlrs reuter 3

上面的3,是因为 0,1,2,3保留下标,分别表示:“padding,” “start of sequence,“,“unknown.”和“unused”

然后下面采用 Tokenizer 对其进行编码,我们添加一些打印,看下编码前后的关系:

tmp_list = x_train[0]
tmp_list.sort()
print(tmp_list)
print('Vectorizing sequence data...')
tokenizer = Tokenizer(num_words=max_words)
x_train = tokenizer.sequences_to_matrix(x_train, mode='binary')
x_test = tokenizer.sequences_to_matrix(x_test, mode='binary')
print(x_train[0])

打印结果为:

[1, 2, 2, 2, 2, 2, 2, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 10, 11, 11, 11, 11, 12, 15, 15, 15, 15, 15, 15, 16, 16, 17, 19, 19, 22, 22, 22, 25, 26, 29, 30, 32, 39, 43, 44, 48, 48, 49, 52, 67, 67, 67, 83, 84, 89, 90, 90, 90, 102, 109, 111, 124, 132, 134, 151, 154, 155, 186, 197, 207, 209, 209, 258, 270, 272, 369, 447, 482, 504, 864]
Vectorizing sequence data...
[0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0.
 0. 1. 1. 0. 0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 0.
 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

也就是如果文本中包含该字符,则将相应的位置1,否则置0,不过我们也看到,此种编码方式会丢失文本的位置信息;也就是“我要狗”跟“狗咬我”没有区别了,不过好处是节省空间,比起Embedding编码,空间缩小至少一个数量级

 

编码后的shape为:

x_train shape: (8982, 1000)
y_train shape: (8982, 46)

也就是46种分类,通过一个神经网络来进行分类:

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
dense_1 (Dense)              (None, 512)               512512
_________________________________________________________________
activation_1 (Activation)    (None, 512)               0
_________________________________________________________________
dropout_1 (Dropout)          (None, 512)               0
_________________________________________________________________
dense_2 (Dense)              (None, 46)                23598
_________________________________________________________________
activation_2 (Activation)    (None, 46)                0
=================================================================
Total params: 536,110
Trainable params: 536,110
Non-trainable params: 0
_________________________________________________________________

 

代码 reuters_mlp_relu_vs_selu.py 使用的是同样的数据集,实现的功能就是比较一下两种神经网络,哪种效果好,也就是激活函数不同,dropout不一样,初始化参数方式有点区别,这里仅打印一下神经网络:

network1

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
dense_1 (Dense)              (None, 16)                16016
_________________________________________________________________
activation_1 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_1 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_2 (Dense)              (None, 16)                272
_________________________________________________________________
activation_2 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_2 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_3 (Dense)              (None, 16)                272
_________________________________________________________________
activation_3 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_3 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_4 (Dense)              (None, 16)                272
_________________________________________________________________
activation_4 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_4 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_5 (Dense)              (None, 16)                272
_________________________________________________________________
activation_5 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_5 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_6 (Dense)              (None, 16)                272
_________________________________________________________________
activation_6 (Activation)    (None, 16)                0
_________________________________________________________________
dropout_6 (Dropout)          (None, 16)                0
_________________________________________________________________
dense_7 (Dense)              (None, 46)                782
_________________________________________________________________
activation_7 (Activation)    (None, 46)                0
=================================================================
Total params: 18,158
Trainable params: 18,158
Non-trainable params: 0
_________________________________________________________________

 

network2

________________________________________________________________________________
Layer (type)                        Output Shape                    Param #
================================================================================
dense_1 (Dense)                     (None, 16)                      16016
________________________________________________________________________________
activation_1 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_1 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_2 (Dense)                     (None, 16)                      272
________________________________________________________________________________
activation_2 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_2 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_3 (Dense)                     (None, 16)                      272
________________________________________________________________________________
activation_3 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_3 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_4 (Dense)                     (None, 16)                      272
________________________________________________________________________________
activation_4 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_4 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_5 (Dense)                     (None, 16)                      272
________________________________________________________________________________
activation_5 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_5 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_6 (Dense)                     (None, 16)                      272
________________________________________________________________________________
activation_6 (Activation)           (None, 16)                      0
________________________________________________________________________________
alpha_dropout_6 (AlphaDropout)      (None, 16)                      0
________________________________________________________________________________
dense_7 (Dense)                     (None, 46)                      782
________________________________________________________________________________
activation_7 (Activation)           (None, 46)                      0
================================================================================
Total params: 18,158
Trainable params: 18,158
Non-trainable params: 0
________________________________________________________________________________

 

### 回答1: 这个错误提示是在Python中出现的,意思是在某个文件的 "__init__.py" 中无法找到名为 "keras" 的引用。这通常是因为代码中使用了某个名为 "keras" 的库或模块,但是该库或模块没有正确安装或导入。 要解决这个问题,可以尝试以下几个步骤: 1. 确保已经安装了名为 "keras" 的库或模块。可以使用命令行工具或包管理器来安装它,例如: pip install keras。 2. 检查代码中是否正确导入了 "keras" 库或模块。导入语句通常写在代码文件的开头,例如: import keras。 3. 检查是否有其他代码或库与 "keras" 冲突,例如命名相同,导致无法正确引用 "keras"。如果有冲突,需要修改代码以确保正确引用 "keras"。 希望这些步骤能够帮助解决问题。 ### 回答2: 这个错误提示说明在`__init__.py`文件中找不到名为'keras'的引用。当我们在Python项目中使用`import`语句导入一个模块时,Python会在指定的路径中查找对应文件并执行引入操作。如果在`__init__.py`文件中无法找到相应的引用,通常是由于以下几种可能原因导致的: 1. 模块未正确安装:如果运行的是自己开发的项目或者从其他来源下载的项目,可能没有正确地安装所需的库或模块。解决办法是使用`pip`或`conda`等软件包管理工具安装所需的库,例如`pip install keras`。 2. 名称拼写错误:检查代码中引用的模块名称是否正确拼写,Python对大小写敏感。例如,如果实际名称为`Keras`而不是`keras`,则会报错,需要修复引用的名称。 3. 环境变量设置错误:有时,Python解释器可能无法找到正确的库路径。可以检查是否正确设置了环境变量,特别是`PYTHONPATH`,以确保解释器可以找到库。 4. 模块版本不兼容:某些库或模块可能有不兼容的版本。检查所使用的库的版本要求,确保所使用的版本与当前项目兼容。 如果以上解决方法都无效,可能需要进一步调查和排查其他可能的原因。可以查看具体的错误信息和堆栈跟踪,以了解更多细节,并搜索相关的技术文档、论坛或社区以寻求帮助。 ### 回答3: 在解析器中,这个错误通常表示在“__init__.py文件中找不到“keras”这个模块的引用。出现这个错误可能有以下几个原因: 1. Keras没有正确安装:请检查您的计算机上是否已经安装了Keras库。可以通过在终端或命令提示符窗口中运行“pip install keras”来安装最新版本的Keras。 2. 环境变量设置错误:如果Keras已经安装但仍然出现这个错误,可能是由于环境变量设置错误导致的。请确保您已经正确设置了PYTHONPATH和PATH环境变量,以便解析器可以找到Keras库。 3. 文件路径错误:在“__init__.py文件中找不到Keras引用可能是由于文件路径设置错误导致的。请确保您的代码文件(含'__init__.py')在正确的目录中,并且Keras文件也在相同的目录中。 4. Keras版本不兼容:如果您使用的是较旧的Keras版本,可能会导致找不到引用的错误。请尝试更新到最新版本的Keras,并确保您的代码与所使用的版本兼容。 如果您仔细检查以上几个方面,并且问题仍然存在,那可能是由于其他的因素引起的错误。在这种情况下,您可以参考官方文档或寻求专家的帮助来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值