[解決済み] theano.function-どのように機能するのですか?
質問事項
公式ドキュメンテーションを読み、こちらのコメントも読みました。 https://github.com/Theano/theano/blob/ddfd7d239a1e656cee850cdbc548da63f349c37d/theano/compile/function.py#L74-L324 とある人が言っていましたが、これはTheanoに記号計算グラフを実際のプログラムにコンパイルして実行するように指示しているのだそうです。
しかし、例えばこのコードでは、どうやって知るのかがまだわかりません。
self.update_fun = theano.function(
inputs=[self.input_mat, self.output_mat],
outputs=self.cost,
updates=updates,
allow_input_downcast=True)
ボディがないのにどうやって計算するんだ?つまり、この貼り付けられた行の上にあるいくつかのコードでそれらのすべてが計算されているのですが、、、theano.functionは実際にそれらの計算方法を見つけるためにソースコードを見ているのでしょうか?私はただ推測しているだけで、それがどのように機能するのか本当に知りたいのです。
多分、私が問題にしているのは、".という説明の部分です。 記号計算グラフを実際のプログラムにコンパイルするようにTheanoに指示する。 というのも、私は記号計算グラフが何なのか全く分からないので、先ほどの質問と非常に関連する別の質問になってしまうのです。
解説をお願いします。
どのように解決するのですか?
私は専門家ではありませんが、私なりの説明をします。
はい、上のコードで 'body' が定義されています。しかし
theano
は、pythonのインタプリタがするように、そのコードを直接「解釈」しているわけではありません。問題のコードはただ
theano
オブジェクトを作成し
theano
を使用して、目的の関数をコンパイルすることができます。簡単な例で、どのように関数を作成するか見てみましょう。
f(x) = 2x + x**3
.
まず、シンボル入力変数を作成します。
x
. 次に、関数の「本体」を定義します。
f(x)
:
y = 2 * x + x**3 # defines a new symbolic variable which depends on x
これは
y
オブジェクトは、数式を表すグラフに相当します。次のようなものです。
Plus(Times(2,x), Power(x,3))
.
最後に
theano.function
で
input=x
と
output=y
. 次に
theano
は魔法をかけ、実際の関数をコンパイルします。
f(x) = y = 2 * x + x**3
に「含まれている」情報(グラフ)から
y
.
物事が明確になるのか?
関連
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
Pythonショートビデオクローラーチュートリアル
-
Python 入出力と高次代入の基礎知識
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] データ型が理解できない
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない