私はIPython.parallelを使用して機能を並列化したい、と私はシェルIPythonで それを定義するとき、それは完璧に動作:IPython.parallel名前空間
Type: function
Base Class: <type 'function'>
String Form:<function gradient at 0x3ae0398>
Namespace: Interactive
File: /root/<ipython-input-30-cf7eabdfef84>
Definition: gradient(w)
Source:
def gradient(w):
s = (1.0 + exp(y * (X * w)))**-1
return C*X.T*((1 - s) * y)
rc = Client()
rc[:].apply_sync(gradient, w)
...
しかし、私はモジュールと、使用中、それを定義するときインポート: それは、最新のStarcluster UbuntuのAMIを使用して+/IPython 0.12のPython 2.7.2でクラッシュしながら
Type: function
Base Class: <type 'function'>
String Form:<function gradient at 0x3933d70>
Namespace: Interactive
File: /root/mv.py
Definition: mv.gradient(w)
Source:
def gradient(w):
s = (1.0 + exp(y * (X * w)))**-1
return C*X.T*((1 - s) * y)
import mv
rc = Client()
rc[:].apply_sync(mv.gradient, w)
CompositeError: one or more exceptions from call to method: gradient
[0:apply]: NameError: global name 'y' is not defined
[1:apply]: NameError: global name 'y' is not define
はさらに、それは、罰金1にはPython 2.7.2/IPython 0.12を実行している私のローカルシステムで動作します。
ここでは何が起こっていますか?
アップデート:githubからIPython 0.13.devをインストールしました。
ここで、「x」と「y」を設定しますか?彼らは関数のパラメータではないので、彼らはどこから来ますか?それは問題の原因と思われる。 – mata
私はそれらをinit関数で設定します:for c、zip(rc、files):f.execute( "X、y = load ..." – kyrre