TensorFlowモデルの定義については疑問があります。 私は、損失関数を計算するために、異なる入力の出力レベルの値にアクセスする必要がある、ちょっと独特のニューラルネットワークモデルを実装しています...Tensorflow、共有変数定義の配置
したがって、私は、このような関数:
def g(input_x,....):
###...Convolutional and Fully Connected Layers...###
# Last FC Layer
with tf.name_scope("output"):
W = tf.Variable(tf.truncated_normal([num_hidden_units, num_classes], stddev=0.05), name="W")
b = tf.Variable(tf.constant(0.1, shape=[num_classes]), name="b")
scores = tf.nn.xw_plus_b(fc_2_output, W, b, name="output")
return scores
そして、私のモデルでは、私はこのような何かしている:
with tf.Graph().as_default():
session_conf = tf.ConfigProto(
allow_soft_placement=FLAGS.allow_soft_placement,
log_device_placement=FLAGS.log_device_placement)
sess = tf.Session(config=session_conf)
with sess.as_default():
###definition of other variables, constants and placeholders###
###weird loss function with scores from different inputs###
loss_function = tf.reduce_mean(alpha1 * weights_ll * tf.nn.softmax_cross_entropy_with_logits(logits=g(input1), labels=labels1) \
+ cu1 * tf.nn.softmax_cross_entropy_with_logits(logits=g(input2), labels=g(input1) \
+ cv1 * tf.nn.softmax_cross_entropy_with_logits(logits=g(input1), labels=labels2))) \
+ ... + ...
optimizer = tf.train.AdamOptimizer(1e-3).minimize(loss_function, global_step=global_step)
##...training steps and such...##
訓練を努めていますが、あまりにも長い間、それを実行せずに、私は奇妙な結果を取得しています、と私は疑問に思いますで定義された重みg関数は訓練されているか、オプティマイザの範囲外にあります。
残念ながら、私はまだテンソルフローについて多くのことを学んでおり、現在あなたにTensorBoardの結果は表示されていません。
出力のためにPython関数を使用して、このようなモデルを定義することが合法であれば、少し経験がある人から知る必要があります。
はここまで
こんにちは、Pythonの関数としての良い定義するためのモデル:
幸いにも、変数の共有アドレスTensorFlowのウェブサイトでのチュートリアルがあります。そこには問題はありません。何か問題があれば、それは損失機能のためかもしれません。どのような奇妙な結果が得られているかを示してください。損失は減少していますか? – hars
損失は-1e + 15のオーダーの大きな負の値に還元されていますが、精度は向上していません。バイナリ分類の問題で平均0.5(ランダムな推測)です –
単純な損失関数)?その場合、精度は変わりますか? – hars