2017-02-03 9 views
1

私の仕事ではリニアチェーンCRFを使用しようとしています。私が提供している使用例のコードの助けを借りて - https://github.com/tensorflow/tensorflow/tree/r1.0/tensorflow/contrib/crfテンソルフローリニアチェーンでtransition_paramsの初期値を正しく渡す方法CRF

私の質問は、 "crf_log_likelihood()"で "transition_params"の初期値を与える方法です。この例を具体的に説明すると、標準ランダム正規分布で初期化したいとします。 api docでは、実際には「transition_params」を入力引数として渡すことができます。メソッドの中で私は、 "transition_params"が渡されなければ、それはname = "transitions"で "vgetget_variable()"を実行することによって得られることがわかります。

私は 'crf_log_likelihood'オペレーションを作成する前にこれに似たようなことをする必要がありますか?何かのように - transition_params = vs.get_variable( "遷移"、[num_tags、num_tags]、初期化子= tf.random_normal_initializer()) - "crf_log_likelihood()"の呼び出しを "log_likelihood、transition_params = tf.contrib .crf.crf_log_likelihood(unary_scores、y_t、sequence_lengths_t、transition_params) "?

答えて

0

crf_log_likelihood()の定義内にあるget_variable()は、自分で提供しない場合は、トランジションパラメータを表すために新しくランダムに初期化された変数を作成します。デフォルト動作を望まない場合は、明示的にtransition_paramsを指定する必要があります。

get_variable()の動作を理解するには、こちらを参照してください。役立ちます

https://www.tensorflow.org/api_docs/python/state_ops/sharing_variables#get_variable

希望を!

関連する問題