我有一个简单的问题。我正在开发tensorflow模型,需要在构建阶段使用公式中的迭代数。我知道如何使用global_step,但我没有使用已经存在的优化器。 我正在用
计算我自己的渐变grad_W, grad_b = tf.gradients(xs=[W, b], ys=cost)
grad_W = grad_W +rnd.normal(0,1.0/(1+epoch)**0.55)
然后使用
new_W = W.assign(W - learning_rate * (grad_W))
new_b = b.assign(b - learning_rate * (grad_b))
并希望在更新我的权重之前使用公式中的纪元值。我怎样才能以最好的方式做到这一点?我有一个sess.run()部分,并希望传递给模型的纪元号,但不能直接使用张量。 从我的跑步电话
_, _, cost_ = sess.run([new_W, new_b ,cost],
feed_dict = {X_: X_train_tr, Y: labels_, learning_rate: learning_r})
我想通过时代号码。你通常怎么做?
先谢谢,翁贝托
修改:
感谢您的提示。所以似乎工作
grad_W = grad_W + tf.random_normal(grad_W.shape,
0.0,1.0/tf.pow(0.01+tf.cast(epochv, tf.float32),0.55))
但是我仍然要看看这是否是我需要的,如果按预期工作。想法和反馈会很棒!
答案 0 :(得分:1)
您可以在图表中将<android.widget.RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="net.dijitalbeyin.myapplication.MainActivity"
android:background="#A3ADDE" >
<TextView
android:id="@+id/txt_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:textStyle="bold"
android:textSize="20dp"
android:text="İsminiz:" />
<EditText
android:id="@+id/editTxt_name"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/txt_name"
android:background="#FFFFFF" />
<Button
android:id="@+id/btn_ok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTxt_name"
android:minWidth="0dp" />
</android.widget.RelativeLayout>
定义为不可训练的epoch
,并在每个纪元的末尾递增它。您可以使用tf.assign_add
定义一个操作来进行增量,并在每个纪元的末尾运行它。
而不是tf.Variable
,您还需要使用tf.random_normal
。
示例:
rnd.normal