2017-05-09 12 views
2

テンソルフロー '0.12.1'を使用してgpuでテンソルフローを持つ作業ミニコンダ環境carnd-term1-gpuをクローンしました。環境には他の多くのPythonパッケージがインストールされていました。私はtensorflow Ubuntuに基づいて、以下のなかったようtensorflowの最新バージョンにアップグレードしたい:クローン化されたconda環境でtensorflowをインストールすると、クローン化された環境が破棄されます

1)これが正常に完了し

conda create --name tflow --clone carnd-term1-gpu 

tflowとして、既存の作業環境をクローン化しました。

2)ソース今、私はそれを変更すべきではないと仮定して、古い環境を実行しようTFLOWをアクティブにし、ピップ

source activate tflow 
(tflow) [email protected]:~$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl 

を使用してインストールします。

ipythonプロンプト import numpy as npから次に
source activate carnd-term1-gpu 
ipython 

と、次を得る:

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-4ee716103900> in <module>() 
----> 1 import numpy as np 

/home/ai/miniconda3/envs/carnd-term1-gpu/lib/python3.5/site-packages/numpy/__init__.py in <module>() 
    140   return loader(*packages, **options) 
    141 
--> 142  from . import add_newdocs 
    143  __all__ = ['add_newdocs', 
    144    'ModuleDeprecationWarning', 

/home/ai/miniconda3/envs/carnd-term1-gpu/lib/python3.5/site-packages/numpy/add_newdocs.py in <module>() 
    11 from __future__ import division, absolute_import, print_function 
    12 
---> 13 from numpy.lib import add_newdoc 
    14 
    15 ############################################################################### 

/home/ai/miniconda3/envs/carnd-term1-gpu/lib/python3.5/site-packages/numpy/lib/__init__.py in <module>() 
     6 from numpy.version import version as __version__ 
     7 
----> 8 from .type_check import * 
     9 from .index_tricks import * 
    10 from .function_base import * 

/home/ai/miniconda3/envs/carnd-term1-gpu/lib/python3.5/site-packages/numpy/lib/type_check.py in <module>() 
     9   'common_type'] 
    10 
---> 11 import numpy.core.numeric as _nx 
    12 from numpy.core.numeric import asarray, asanyarray, array, isnan, \ 
    13     obj2sctype, zeros 

/home/ai/miniconda3/envs/carnd-term1-gpu/lib/python3.5/site-packages/numpy/core/__init__.py in <module>() 
    51 from . import shape_base 
    52 from .shape_base import * 
---> 53 from . import einsumfunc 
    54 from .einsumfunc import * 
    55 del nt 

ImportError: cannot import name 'einsumfunc' 

私は私はしかし、1つの環境でインストールが変更されているようです、別々の環境を複製してのみ、その環境を変更することにより、保護されたと思いました他の環境での動作。まさに私が避けていると思ったもの!何が問題になりましたか?これをどのように修正しますか?これまでのところ、新しい環境がうまく動作しているようです。

ファイルの日付を両方の環境でチェックしました。 carnd-term1-gpu環境では、tflow環境でアップグレードを行った日と同じ日付のファイルがありました。どのように起こる可能性がありますか?

私のcarnd-term1-gpu環境に不足しているファイルeinsumfunc.pyを追加しようとしましたが、もう一度Ipythonを起動しました。今回私が行ったときimport numpy as np別のファイルをインポートできませんでした。だから私のcarnd-term1-gpu環境が壊れているように見えます。

環境ごとにconda listを比較し、numpyでだけ見て、私は以下を参照してください。 tflowのための環境:

numpy      1.11.3     <pip> 
numpy      1.12.1     <pip> 
numpy      1.11.3   py35_blas_openblas_200 [blas_openblas] conda-forge 

をそしてcarnd-term1-gpu環境のために:

numpy      1.11.3     <pip> 
numpy      1.11.3   py35_blas_openblas_200 [blas_openblas] conda-forge 

私は、使用してリビジョンを見てconda list --revisions。両方の環境では、rev 0という1つのリビジョンしか表示されません。同様にconda-meta/historyを見ると、carnd-term1-gpuの場合は1月13日、tflowの場合は5月9日のオリジナルの作成日のみが表示されます。だから、ピップのこのバージョンの組み合わせ:

このホイールと組み合わせる
pip      9.0.1     py35_0 conda-forge 

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl 

は何とか環境carnd-term1-gpuが破損。これはバグか、テンソルフローサイトから何らかの形で壊れたホイールがあるようです。それが後であれば、どのようにしてインストールされた環境とは異なる環境を壊すことができますか? pipのバージョンは両方の環境で同じでした。

私は、インストールした日付にどのファイルが変更されたかを調べるために、以下の作業を行いました。

find /home/ai/miniconda3/envs/carnd-term1-gpu/ -type f -newermt 2017-05-09 -ls | wc -l 

これは、669個のファイルが作成/変更されたことを示しました。これらのほとんどは/site-packages/numpy/であったが、six.py,pyparsing.py,/setuptools/,/pkg_resources/,easy_install.py,/werkzeug/であった。

conda --versionは、私は私の古い環境が再び軌道に乗るために、以下を試してみました4.2.12

です。

conda env export > environment.yml 
conda env create -f environment.yml -n sdc-gpu 

これは、エラーを次の結果:

Could not import setuptools which is required to install from a source distribution. 
Traceback (most recent call last): 
    File "/home/ai/miniconda3/envs/sdc-gpu/lib/python3.5/site-packages/pip/req/req_install.py", line 387, in setup_py 
    import setuptools # noqa 
    File "/home/ai/miniconda3/envs/sdc-gpu/lib/python3.5/site-packages/setuptools/__init__.py", line 12, in <module> 
    import setuptools.version 
    File "/home/ai/miniconda3/envs/sdc-gpu/lib/python3.5/site-packages/setuptools/version.py", line 1, in <module> 
    import pkg_resources 
    File "/home/ai/miniconda3/envs/sdc-gpu/lib/python3.5/site-packages/pkg_resources/__init__.py", line 70, in <module> 
    import packaging.version 
ImportError: No module named 'packaging' 

CondaValueError: Value error: pip returned an error. 
+0

これはどのバージョンですか? 'conda --version'の出力を共有する –

+0

投稿の最後にcondaのバージョンを追加しました。 4.2.12 –

+0

condaのバージョンを4.3.17に更新しても問題が解決しないかどうか確認してください。 'conda update conda' –

答えて

1

を私はちょうどcontinuumから次のことを得ました。 "この問題を避けるためには、クローンオペレーションで--copyフラグを使用する必要があります。コンドラの設計のコアは、ハードリンクの大量使用です。この正確な問題は最大の落とし穴の1つです。

私が最初に環境をクローン化したときに、私は次のことを行っているかどうだから、私は古いものを破壊避けたかもしれない:

conda create --name tflow --copy --clone carnd-term1-gpu

オプション--copy Install all packages using copies instead of hard- or soft-link‐ingは、ファイルを上書きすることができることから、ピップを防ぐことができます。

この方法と、それが将来的に対処してしまうかもしれませんに関するいくつかの継続的な議論はここにある:私は回復のために持っているconda pip breaks

唯一のオプションは、各損傷したパッケージを再インストールすることです。コンクリートでピップを使用するときは注意してください。

関連する問題