keras 的 example 文件 babi_rnn.py 解析

该代码的目的和 https://blog.csdn.net/zhqh100/article/details/105193991 类似

数据集也是同一个数据集,只不过这个是从 qa2_two-supporting-facts_train.txt 中获取的文本,文本量会大一些

第一个示例

1 Mary moved to the bathroom.
2 Sandra journeyed to the bedroom.
3 Mary got the football there.
4 John went to the kitchen.
5 Mary went back to the kitchen.
6 Mary went back to the garden.
7 Where is the football? 	garden	3 6

单词映射为:

{'.': 1, '?': 2, 'Daniel': 3, 'John': 4, 'Mary': 5, 'Sandra': 6, 'Where': 7, 'apple': 8, 'back': 9, 'bathroom': 10, 'bedroom': 11, 'discarded': 12, 'down': 13, 'dropped': 14, 'football': 15, 'garden': 16, 'got': 17, 'grabbed': 18, 'hallway': 19, 'is': 20, 'journeyed': 21, 'kitchen': 22, 'left': 23, 'milk': 24, 'moved': 25, 'office': 26, 'picked': 27, 'put': 28, 'the': 29, 'there': 30, 'to': 31, 'took': 32, 'travelled': 33, 'up': 34, 'went': 35}

上面的材料编码后为:

[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  5 25 31 29 10  1  6 21 31 29 11  1  5 17
 29 15 30  1  4 35 31 29 22  1  5 35  9 31 29 22  1  5 35  9 31 29 16  1]
[ 7 20 29 15  2]
[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.]

这里把ans进行了one-hot编码,所以 loss 用的是 categorical_crossentropy,而 babi_memnn.py 用的是 sparse_categorical_crossentropy,所以不用进行one-hot编码

训练数据shape

x.shape = (1000, 552)
xq.shape = (1000, 5)
y.shape = (1000, 36)

神经网络结构:

__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to
==================================================================================================
input_1 (InputLayer)            (None, 552)          0
__________________________________________________________________________________________________
input_2 (InputLayer)            (None, 5)            0
__________________________________________________________________________________________________
embedding_1 (Embedding)         (None, 552, 50)      1800        input_1[0][0]
__________________________________________________________________________________________________
embedding_2 (Embedding)         (None, 5, 50)        1800        input_2[0][0]
__________________________________________________________________________________________________
lstm_1 (LSTM)                   (None, 100)          60400       embedding_1[0][0]
__________________________________________________________________________________________________
lstm_2 (LSTM)                   (None, 100)          60400       embedding_2[0][0]
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 200)          0           lstm_1[0][0]
                                                                 lstm_2[0][0]
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 36)           7236        concatenate_1[0][0]
==================================================================================================
Total params: 131,636
Trainable params: 131,636
Non-trainable params: 0
__________________________________________________________________________________________________

——————————————————————

总目录

keras的example文件解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值