【问题标题】:AttributeError when using theano backend with CPU将 theano 后端与 CPU 一起使用时出现 AttributeError
【发布时间】:2018-08-13 05:44:51
【问题描述】:

我正在尝试运行this python notebook,其中使用 Keras 实现了一个众所周知的卷积神经网络。作者使用theano作为后端,使用他的cpu设备。因为 CUDA 不支持我的 CPU(需要使用它),所以我将尝试使用我的 gpu(首先)。 我在this 链接之后安装了 keras 和 theano 以及所需的要求。因为我想使用我的 GPU,所以我跳过了 gpu 配置。

为了使用我的 GPU,我在第一行中更改了设备标志,结果如下:

#%matplotlib inline
import numpy as np
import pandas as pd

import sys

from skimage.io import imread
from matplotlib import pyplot as plt

import os
os.environ['KERAS_BACKEND'] = 'theano'
os.environ['THEANO_FLAGS'] = 'mode=FAST_RUN, device=cpu, floatX=float32, optimizer=fast_compile'

from keras import models
from keras.optimizers import SGD

这给了我一个错误:

AttributeError: ('This name is already taken', 'floatX')

我找到了解决方案,但主要针对 GPU 用户。我还阅读了somewhere 我必须删除一个 $HOME/.theanorc 文件,但是我找不到这个文件。

谁能解释导致这个错误的原因以及如何解决这个问题?

【问题讨论】:

    标签: python keras theano conv-neural-network


    【解决方案1】:

    上面写着"AttributeError: ('This name is already taken', 'floatX')"的原因 很可能是因为floatX 已在.theanorc.txt 文件中定义。

    您可以从

    中删除"floatX=float32, "
    os.environ['THEANO_FLAGS'] = 'mode=FAST_RUN, device=cpu, floatX=float32, optimizer=fast_compile'
    

    并对类似的其他属性重复相同的操作。

    比这更好的选择是:运行 python 并输入,

    import os 
    print(os.path.expanduser('~/.theanorc.txt'))
    

    它将显示.theanorc.txt文件在windows中的位置

    【讨论】:

    • os.path.expanduser('~/.theanorc.txt')的位置没有theanorc文件。我试过file.path.exists(os.path.expanduser('~/.theanorc.txt'))。当我删除 floatX=float32 时,该错误不再存在,但我现在收到另一个错误。会不会是文件的缺失给我带来了麻烦?
    • 不,默认情况下,您没有任何 .theanorc 文件(至少在 linux 中是这样)。如果您想定义自定义值,您可以创建它。你现在遇到什么错误?
    • 那是很久以后的事,那时可能不相关。当我加载模型时,我得到total size of new array must be unchanged
    • 是的,听起来不相关。
    猜你喜欢
    • 2012-11-17
    • 2015-04-29
    • 2017-10-29
    • 2015-05-06
    • 2020-07-26
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多