Я пытаюсь запустить простую логистическую регрессию для фиктивных данных.По-видимому, потери и веса не меняются в разные эпохи.Я пытался изменить скорость обучения на разные значения, но это не сработало.Кроме того, я пробовал различную случайную инициализацию весов и увеличивал количество эпох, но это не сработало.Вот пример того, что я запустил:
train_set_x_dummy = np.random.rand(3,100) #100 examples with 3 features
train_set_y_dummy = np.random.randint(high=2,low=0,size=(1,10))
n_features = train_set_x_dummy.shape[0]
X = tf.placeholder(name="X", dtype=tf.float32,shape=(n_features,None))
Y = tf.placeholder(name="Y", dtype=tf.float32,shape=(1,None))
W = tf.Variable(np.random.rand(n_features,1), name="weights",dtype=tf.float32)
b = tf.Variable(0 ,name="bias",dtype=tf.float32)
y_preds = tf.nn.sigmoid( tf.matmul(tf.transpose(W),X) + b)
loss = tf.nn.softmax(Y - y_preds)
mse = tf.reduce_sum(loss)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)
tf.set_random_seed(1103)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
loss_summary = tf.summary.scalar("loss_scaler",mse)
weights_summary = tf.summary.histogram("weights_summary",W)
bias_summary = tf.summary.histogram("bias_summary",b)
writer = tf.summary.FileWriter('logs', tf.get_default_graph())
for epoch in range(1000):
(_,l,y_preds_log,weights,mse_values) = sess.run([optimizer,mse,y_preds,W,mse],feed_dict={X:train_set_x_dummy , Y:train_set_y_dummy})
mse_str = loss_summary.eval(feed_dict={X:train_set_x_dummy , Y:train_set_y_dummy})
writer.add_summary(mse_str,epoch)
writer.add_summary(weights_summary.eval(),epoch)
writer.add_summary(bias_summary.eval(),epoch)
writer.flush()
Итак, есть идеи, почему это происходит?