2017-08-03 7 views
0

TensorFlowで似たように構成されたディープニューラルネットワークモデルに異なる起動関数を適用したいと考えています。そのため、これらの分類子では最初の重みが同じでなければなりません。しかし、私はこの作業のための解決策を見つけることができません。 first_classifierをsecond_classifierに複製するか、またはfirst_classifierの重みを第2の分類子に転送するかを選択します。ご協力ありがとうございます。TensorFlowのDNNClassifierの重みを初期化する方法

first_classifier = tf.contrib.learn.DNNClassifier(
    feature_columns = feature_columns 
    , hidden_units = [3] 
    , activation_fn = tf.nn.sigmoid 
    , optimizer = tf.train.GradientDescentOptimizer(learningRate)) 

second_classifier = tf.contrib.learn.DNNClassifier(
    feature_columns = feature_columns 
    , hidden_units = [3] 
    , activation_fn = tf.nn.tanh 
    , optimizer = tf.train.GradientDescentOptimizer(learningRate)) 

答えて

0

DNN docsから、最初の重みを直接設定することはできません。 set_paramsを使用する場合を除きます。最良の方法は、2つのクラシファイア間でパラメータ(クローンまたは転送)を共有することです。

+0

クラシファイア間でクローン/転送する方法はありますか? set_params関数の使用例が見つかりません。 – johncasey

+0

'tf.train.Saver'でチェックポイントを使用する方法は、1つのネットワークで1つの反復を実行し、もう1つのネットワークでチェックポイントを復元する方法です。私はそれがトリックを行うかもしれないと思う。 – Grasshopper

関連する問題