ORがどうしてコード中に必要なのでしょうか?
tf.reset_default_graph() x = tf.placeholder(tf.float32, name='x') t = tf.placeholder(tf.float32, name='t') W = tf.Variable(rng.uniform(low=-0.08, high=0.08, size=(2, 1)).astype('float32'), name='W') b = tf.Variable(np.zeros(1).astype('float32'), name='b') y = tf.nn.sigmoid(tf.matmul(x,W)+b) cost = -tf.reduce_mean(t*tf.log(tf.clip_by_value(y, 1e-10, 1.0)) + (1 - t)*tf.log(tf.clip_by_value(1 - y, 1e-10, 1.0))) gW, gb = tf.gradients(cost, [W, b]) updates = [ b.assign_add(-0.01*gb), W.assign_add(-0.01*gW) ] train = tf.group(*updates) train_X = np.array([[0, 1], [1, 0], [0, 0], [1, 1]]) train_y = np.array([[1], [1], [0], [1]]) with tf.Session() as sess: sess = tf.Session() sess.run(tf.global_variables_initializer()) for i in range(10000): _cost, _ = sess.run([cost, train], feed_dict={x: train_X, t: train_y}) if (i+1)%1000==0: print(_cost)
というコードが勉強で出て来ました。
train_X = np.array([[0, 1], [1, 0], [0, 0], [1, 1]]) train_y = np.array([[1], [1], [0], [1]])
の部分がORに当たる部分だそうです。しかし、
プレースホルダーと変数の定義→ロジスティック回帰→誤差関数の定義→更新則の設定→OR→学習 のコードの役割の流れで OR が必要なのでしょうか?
更新則の設定→学習の流れではダメなのでしょうか?
提示されたコードが「何(を学習)」をするためのものかを説明(追記)することは可能ですか?
回答2件
あなたの回答
tips
プレビュー