1、UserWarning: Update your Dense
call to the Keras 2 API
2、WARNING (theano.gof.compilelock): Overriding existing lock by dead process ‘4844’ (I am process ‘3908’)
以上两个问题是笔者用demo在新的电脑上运行出现的警告信息,通过折腾,笔者发现这是由于keras与theano版本的旧的问题造成的。
在anaconda下现在来更新版本:
1,Keras 更新指令
pip install git+git://github.com/fchollet/keras.git --upgrade --no-deps
2、如何安装/更新Theano
pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
附上更新Theano的中文文档地址:
http://blog.youkuaiyun.com/wizardforcel/article/details/55001290
3、Anaconda安装更新库
#1、如何查看已安装的库
#打开 Anaconda Command Prompt ,在命令提示符窗口中输入以下命令:
pip list
# 或者
conda list
其中,pip list 只能查看库,而 conda list 则可以查看库以及库的版本
#2. 如何安装或更新库
#以安装 更新 scipy 为例
pip install scipy
pip install scipy --upgrade
# 或者
conda install scipy
conda update scipy
# 更新所有库
conda update --all
# 更新 conda 自身
conda update conda
# 更新 anaconda 自身
conda update anaconda
笔者这里使用的版本号:anaconda 2
keras 2.0.3
Theano 0.9.0
另外说明一下出现的这些警告:
出现的问题:
1.WARNING (theano.gof.compilelock) Overriding existing lock by dead process '10136' (I am process '14284')
2.DEBUG: nvcc STDOUT mod.cu
解释:第一个信息表示同一台机器上有多个进程在并发访问compiledir目录,而为了防止冲突,只有一个进程能够真正的访问(读写)该目录文件,于是获取访问权限的进程会对该目录加锁(lock),其他进程出去等待状态。这样就可实现不同进程交替访问该目录的情况。如果想减少并发冲突情况,可以给每个进程指定不同的base_compiledir,具体参考theano.config的参数第二个信息表示nvcc正在将graph转成的cuda代码,.cu为cuda代码的后缀。
参考资料:
1、http://blog.youkuaiyun.com/alwaystry/article/details/53488674 2017.4.10
2、http://blog.163.com/bioinfor_cnu/blog/static/1944622372016622112953105/ 2017.4.10
3、http://blog.youkuaiyun.com/wizardforcel/article/details/55001290 2017.4.10
4、http://www.cnblogs.com/zhusleep/p/5616099.html 2017.4.10
5、http://stackoverflow.com/questions/31750869/theano-importerror-and-process-warning-when-compiling-function 2017.4.10
6、http://stackoverflow.com/questions/42815131/keras-for-implement-convolution-neural-network 2017.4.10
7、https://www.zhihu.com/question/51946329 2017.4.10