Windows下Keras报错TypeError: <lambda>() got an unexpected keyword argument 'name'

原创 2016年04月07日 04:36:25

Windows下 Keras 报错 TypeError: lambda() got an unexpected keyword argument ‘name’

环境

  • Windows10 x64
  • Keras 0.3.3
  • Theano 0.8.0

问题

这种情况貌似只发生在Windows系统下用Keras跑部分实例代码时,Ubuntu下没见过。
以Keras的示例代码mnist_irnn.py为例,直接运行时会报错如下:

Using Theano backend.
Using gpu device 0: GeForce GTX 860M (CNMeM is disabled, CuDNN not available)
('X_train shape:', (50000L, 784L, 1L))
(50000L, 'train samples')
(10000L, 'test samples')
Evaluate IRNN...
Traceback (most recent call last):

  File "<ipython-input-1-7becf7f3cbe9>", line 1, in <module>
    runfile('D:/File/code/python/testRNN/mnist_irnn.py', wdir='D:/File/code/python/testRNN')

  File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 699, in runfile
    execfile(filename, namespace)

  File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "D:/File/code/python/testRNN/mnist_irnn.py", line 67, in <module>
    activation='relu', input_shape=X_train.shape[1:]))

  File "C:\Anaconda2\lib\site-packages\keras\keras\layers\recurrent.py", line 257, in __init__
    super(SimpleRNN, self).__init__(**kwargs)

  File "C:\Anaconda2\lib\site-packages\keras\keras\layers\recurrent.py", line 132, in __init__
    super(Recurrent, self).__init__(**kwargs)

  File "C:\Anaconda2\lib\site-packages\keras\keras\layers\core.py", line 60, in __init__
    self.set_input_shape((None,) + tuple(kwargs['input_shape']))

  File "C:\Anaconda2\lib\site-packages\keras\keras\layers\core.py", line 223, in set_input_shape
    self.build()

  File "C:\Anaconda2\lib\site-packages\keras\keras\layers\recurrent.py", line 270, in build
    name='{}_W'.format(self.name))

TypeError: <lambda>() got an unexpected keyword argument 'name'

解决方法

直接点击错误链接的话,可能会被带到如recurrent.py,core.py等其他代码上,但实际上正如错误最后一行所说,这主要是lambda表达式引起的错误,问题就在这个代码块:

model.add(SimpleRNN(output_dim=hidden_units,
                    init=lambda shape: normal(shape, scale=0.001),
                    inner_init=lambda shape: identity(shape, scale=1.0),
                    activation='relu', input_shape=X_train.shape[1:]))

这里需要把lambda表达式直接改写为Keras在initializations.py中预先写好的默认构造函数,如'uniform','normal','identity',就像这样:

model.add(SimpleRNN(output_dim=output_dim,
                   init='normal',#lambda shape: normal(shape, scale=0.001),
                   inner_init='identity',#lambda shape: identity(shape, scale=1.0),
                   activation='relu', input_shape=X_train.shape[1:]))

这样就没问题了。
如果实在想修改初始化函数中的各个参数的话,呃,那就去本地的initializations.py源代码中改吧。
嗯嗯,我知道,这方法是有点挫,可我实在想不出其他招儿了,凑合过呗,还能离咋地…
BTW,还是不知道为啥这个错误只发生在Windows下,在Ubuntu上毛都不用改,还跑得飞快(有cuDNN法术加持就是吊,手动眼斜)。

Keras TypeError: run() got an unexpected keyword argument 'class_mode'

问题:跑Keras入门教程,到训练模型model.fit这一步时报错TypeError: run() got an unexpected keyword argument 'class_mode' ...
  • yhbfirst001
  • yhbfirst001
  • 2017年11月17日 17:33
  • 713

Keras TypeError: run() got an unexpected keyword argument 'class_mode'

问题:跑Keras入门教程,到训练模型model.fit这一步时报错TypeError: run() got an unexpected keyword argument 'class_mode' ...
  • weixin_39493713
  • weixin_39493713
  • 2018年01月05日 08:25
  • 55

RESTful学习笔记 --- TypeError: __init__() got an unexpected keyword argument 'method'

RESTful学习笔记 --- TypeError: __init__() got an unexpected keyword argument 'method'
  • u012965373
  • u012965373
  • 2016年12月16日 10:03
  • 12090

Flask 应用程序外部可见问题: typeerror run() got an unexpected keyword argument 'host'.

今天在Windows 7 下通过NAT的端口转发机制访问VirtualBox中的 CentOS 6.4上的Flask 网站。虽然在CentOS上能够访问,但Win7下总是无法访问。应该不是防火墙的问题...
  • fwenzhou
  • fwenzhou
  • 2013年04月25日 09:05
  • 2949

TypeError: exchange_declare() got an unexpected keyword argument 'type'的解决办法

在用网上的python代码执行rabbitmq案例的时候遇到了一个错误,困惑了好久发现解决办法。具体如下:源代码:#encoding:utf8 import pika connection = ...
  • u013182693
  • u013182693
  • 2017年10月27日 16:01
  • 279

《Flask Web开发》学习笔记之bug--(6)【TypeError: __init__() got an unexpected keyword argument 'method'】

# hello.py from datetime import datetime from flask import Flask, render_template from flask_script...
  • qq_33528613
  • qq_33528613
  • 2017年07月13日 16:25
  • 1040

基于TensorFlow的Keras运行出错解决方案

keras sigmoid_cross_entropy_with_logits() got an unexpected keyword argument 'labels'
  • JsonD
  • JsonD
  • 2017年07月15日 23:11
  • 1168

pip错误:TypeError: parse() got an unexpected keyword argument 'transport_encoding'

在ANACONDA3(64-bit),ANACONDA Prompt中不能用pip命令安装包,并且是在安装了TensorFlow后才发生的。报错如下: 解决办法:输入命令 conda install ...
  • Cheese_pop
  • Cheese_pop
  • 2017年10月11日 11:03
  • 9565

pip错误:TypeError: parse() got an unexpected keyword argument 'transport_encoding'

Win10,ANACONDA3(64-bit),Python3.6.2。ANACONDA Prompt中不能用pip命令安装包,并且是在安装了TensorFlow后才发生的。报错如下: ...
  • gqixf
  • gqixf
  • 2017年11月27日 15:23
  • 583

TensorFlow 从入门到精通(六):tensorflow.nn 详解

看过前面的例子,会发现实现深度神经网络需要使用 tensorflow.nn 这个核心模块。我们通过源码来一探究竟。# Copyright 2015 Google Inc. All Rights Res...
  • kkk584520
  • kkk584520
  • 2016年05月23日 14:30
  • 50337
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows下Keras报错TypeError: <lambda>() got an unexpected keyword argument 'name'
举报原因:
原因补充:

(最多只允许输入30个字)