【问题标题】:Keras breaks Anaconda PromptKeras 打破 Anaconda 提示
【发布时间】:2019-04-28 06:00:01
【问题描述】:

我在 Anaconda 发行版上从 tensorflow 切换到 keras,但在使用后者时遇到了一些问题。我使用命令通过 Anaconda 提示符安装它

conda install keras

我认为安装没有正确完成,因为它运行命令

python -c "import keras"  1>nul 2>&1

并关闭提示。之后,如果我要打开命令行,它会自动运行上面的命令并关闭它,所以我无法使用提示符。 Anaconda 5.3.1 (Python 3.7) 和 Anaconda 5.2.0 (Python 3.6) 都发生了这种情况。

提前非常感谢您。任何帮助将不胜感激。

【问题讨论】:

  • Keras 使用 tensorflow ot theano 之类的后端,你用哪一个?
  • 我正在使用 Tensorflow @Geeocode
  • 由于 tensorflow 更喜欢在 anaconda 环境中通过 pip 安装,您应该尝试使用 pip 安装 tf 和 Keras。我使用了这种方法并且效果很好。实际上,您不是第一个为 tf 和 Keras 的 conda 类型安装而苦苦挣扎的人。我将 conda install 用于任何可能的应用程序,但 tf 和 Keras 不是这样。但重要的是:使用 Anaconda virtualenv,在其中你必须使用 pip!
  • 请参考此链接。使用这个答案,您将能够再次运行 anaconda 提示并做任何您想做的事情:stackoverflow.com/questions/53488063/…
  • 就我而言,按照this github issue amanrs 给出的答案解决了这个问题。

标签: python keras anaconda


【解决方案1】:

结合 GAURAV 和 GYAN ARORA 的答案后,我找到了答案。解决办法是这样的:

1) 转到%UserProfile%Anaconda3/etc/conda/activate.d并右键单击keras_activate.bat 2) 点击编辑。这是 .bat 文件的样子:

:: Figure out the default Keras backend by reading the config file.
python %CONDA_PREFIX%\etc\keras\load_config.py > temp.txt
set /p KERAS_BACKEND=<temp.txt
del temp.txt

:: Try to use the default Keras backend.
:: Fallback to Theano if it fails (Theano always works).
python -c "import keras" 1>nul 2>&1
if errorlevel 1 (
    ver > nul
    set "KERAS_BACKEND=theano"
    python -c "import keras" 1>nul 2>&1
)

1&gt;nul 都更改为1&gt;。最终文件应如下所示:

:: Figure out the default Keras backend by reading the config file.
python %CONDA_PREFIX%\etc\keras\load_config.py > temp.txt
set /p KERAS_BACKEND=<temp.txt
del temp.txt

:: Try to use the default Keras backend.
:: Fallback to Theano if it fails (Theano always works).
python -c "import keras" 1> 2>&1
if errorlevel 1 (
    ver > nul
    set "KERAS_BACKEND=theano"
    python -c "import keras" 1> 2>&1
)

3) 保存并关闭

【讨论】:

  • 其实还是把1&gt; nul全部去掉比较好。上面建议的生成的批处理代码1&gt; 2&gt;&amp;1 不是有效的语法,将导致错误消息“2>&1 在这个时候是意外的。”原始批处理代码试图做的是抑制命令的所有输出(即,通过将标准输出重定向到nul 并将标准错误重定向到标准输出),但由于某种原因,Anaconda Prompt 不喜欢/支持nul,所以它抛出错误并退出。但只需删除nul,你正在创建不正确的批处理代码。
  • 1&gt;nul 2&gt;&amp;1 将标准错误和标准输出打印到单个文件(此处为NULrefer here for detailed explanation
【解决方案2】:

我尝试了几乎所有解决此问题的方法(从 activate.d 中删除“nul”一开始似乎可行,但随后与软件包相关的 conda 命令仍然使提示崩溃)。所以这就是我所做的。问题似乎源于 conda 安装 keras 的方式。

1) 卸载 keras using pip。使用 Anaconda 安装文件夹中的 Scripts 文件夹。

2) 从 Keras 中手动删除所有剩余的文件夹。其中大部分位于 Anaconda 安装文件夹中。不要忘记删除activate.ddeactivate.d 文件夹中的keras_activate.batkeras_deactive.bat 文件。

3) 使用 pip 安装 keras。

4) 这解决了activate.d 问题。但是,Anaconda Prompt 仍然会因为 %UserProfile%Anaconda3/etc/conda 文件夹中的另一个文件(称为 vs2015_compiler_vars.bat)而崩溃。删除该文件,一切都会正常运行(使用 Keras 时出现的奇怪错误消息也会消失)。

附:我做了一个额外的步骤来使 Anaconda Prompt 完美运行,但我不知道它是否与安装 Keras 有关(这就是我没有将它包含在答案中的原因)。由于 conda 命令卡在“求解环境”中,我使用 conda config --set channel_priority strict 启用了 strich 通道优先级。现在 Anaconda 功能齐全!

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,我花了 2 天时间才终于让事情正常工作并重新安装了很多次。此消息来自以下文件。 %UserProfile%Anaconda3/etc/conda/activate.d/keras_activate.bat. 此文件中编写的代码存在一些问题,每次都会关闭 Anaconda 提示符。我不知道如何解决它,也许其他人可以提出一些建议,但是在提示窗口上仍然执行一些基本任务的一种方法是 -> 右键单击​​上述文件并选择编辑 -> 编写您的 ANACONDA 提示命令文件顶部。 (它将执行然后关闭。)

    【讨论】:

      【解决方案4】:

      .bat 文件中的 nul 行下面的 IN 正在产生问题,它正在关闭终端,请删除 nul,这将得到解决。所以改变这个

      python -c "import keras" 1>nul 2>&1
      

      到这里

      python -c "import keras" 1> 2>&1
      

      【讨论】:

        【解决方案5】:

        我也有同样的问题。我没有找到永久修复,但在脚本完成运行之前,您可以使用ctrl+d 对其进行转义,之后您应该可以做任何您想做的事情。

        【讨论】:

          【解决方案6】:

          我找到的最佳解决方案是,

          1.先卸载Keras

          2.转到该位置 C:\Users\username\AppData\Local\Continuum\anaconda3\etc\conda\activate.d

          你可以在activate.ddeactivate.d看到里面的keras批处理文件,每次anaconda提示符是opened.DELETE它们时都会运行。

          3.重新安装 Keras。

          这对我很有效。

          【讨论】:

            【解决方案7】:

            只需执行命令: pip uninstall keras

            然后删除 activate.d 和 deactivate.d C:\ProgramData\Anaconda3\etc\conda\

            并重新打开 Anaconda 提示符

            【讨论】:

              【解决方案8】:

              "&gt; Change both 1&gt;nul to 1&gt;" - 对我没用...

              但这解决了问题:

              1. 卸载 Keras pip uninstall keras
              2. 转到C:\Users\&lt;username&gt;\anaconda3\etc\conda 并删除这些文件夹中的所有文件
              3. 安装 Keras pip install keras

              【讨论】:

                【解决方案9】:

                我在管理员权限下执行 anaconda 提示并删除/重新安装 Keras。问题就解决了。

                但是它仍然给了我需要手动更改的 Theano 后端。

                【讨论】:

                  猜你喜欢
                  • 2019-04-28
                  • 2020-04-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2022-06-20
                  • 1970-01-01
                  相关资源
                  最近更新 更多