問題タブ [binary-reproducibility]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
383 参照

python - パッケージをロードしますが、同じ名前のパッケージが既にロードされています

同じ Python パッケージの 2 つのバージョンがあります。現在のバージョンのサブパッケージ内のモジュールから、パッケージの古いバージョン (過去に自分自身をコピーしたもの) 内の関数を呼び出せるようにする必要があります。

今いる場所:

古いバージョン:

<HERE>「古い」ものをインポートしてf実行する必要があります。

理想的には

  • 関数fは、パッケージの新しいバージョンについて何も知らずに、古いパッケージ内でその生活を送る必要があります
  • 新しいパッケージのモジュールはそれを呼び出し、その寿命を延ばし、結果を取得してから、古いパッケージの存在を完全に忘れる必要があります (したがって、「import package.subpackage2」を呼び出した後f、「新しい」パッケージを実行する必要があります)。バージョン)
  • それを行うことはひどく複雑であってはなりません

根底にあるアイデアは、あるタスクに使用したコードを出力データと共に保存し、その一部を実行できるようにすることで、再現性を向上させることです。

悲しいことに、これは Python 3 での簡単な作業ではないことを理解していたので、何らかの妥協を受け入れる準備ができています。たとえば、古いコードを実行した後、「新しい」コードf(x)の名前が古いコードにバインドされることを受け入れる準備ができています。package

編集

を使用して2つの方法で試しましたimportlib。アイデアは、オブジェクトを作成してから実行することでしたmodf = getattr(mod, "f")、機能しません

  1. に変更sys.path['.../past/package/subpackage']て呼び出すimportlib.import_module('package.subpackage.module') 。問題はsys.path、おそらく名前packageがすでにsys.modules
  2. spec = importlib.util.spec_from_file_location("module", "path..to..past..module.py")) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) その場合、相対インポート ( from . import module2.py) は機能せず、「親パッケージが不明な相対インポートを試みました」というエラーが表示されます。
0 投票する
0 に答える
104 参照

tensorflow - Tensorflow バックグラウンドを持つ Keras で再現可能な結果

私は自分のネットワークを持っています。しかし、コードを実行するたびに異なる出力が得られます。私は keras (Tensorflow バックエンドを使用) を使用しています。再現性のために次のコードを記述します。私のトレーニング サンプル: 280、検証サンプル # 27、テスト サンプル # 21。