Tensorflow_Logistic классификация, результаты отображаются как "nan" - PullRequest
0 голосов
/ 14 ноября 2018

Я пытался Логистическая классификация , используя тензор потока.
Я также пытался создать логистическую классификацию с набором голосовых данных , разделенным на мужчин и женщин.

Но результаты (стоимость, гипотеза) всегда отображаются как 'nan'.

Image of the results

Кто-то ответил,

Если значение данных велико, то кажется, что журнал (гипотеза) находится в бесконечности,именно поэтому он находится вне диапазона представления типа float32.Я решил проблему, умножив W на 0,1 и уменьшив гипотезу.

Итак, я умножил W на 0,1 .

W = tf.multiply(tf.Variable(tf.random_normal([20,1]), name='weight'), [0.1])

Но проблемане было исправлено.

Интересно, в чем проблема.На самом деле, это первый раз, когда я кодирую.

Это необработанный набор данных, который я использовал.

Я хочу, чтобы кто-то помог мне!

import tensorflow as tf
import numpy as np
tf.set_random_seed(777)
xy=np.loadtxt('voice.csv', delimiter=',', dtype=np.float)
x_data=xy[:, 0:-1]
y_data=xy[:, [-1]]
print(x_data.shape, x_data, len(x_data))
print(y_data.shape, y_data)
X = tf.placeholder(tf.float32, shape=[None, 20])
Y = tf.placeholder(tf.float32, shape=[None, 1])
W = tf.Variable(tf.random_normal([20, 1]), name='weight')
b = tf.Variable(tf.random_normal([1]), name='bias')
hypothesis = tf.sigmoid(tf.matmul(X, W) + b)
cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) *
                   tf.log(1 - hypothesis))
train = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)
predicted = tf.cast(hypothesis > 0.5, dtype=tf.float32)
accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for step in range(10001):
    cost_val, _ = sess.run([cost, train], feed_dict={X: x_data, Y: y_data})
    if step % 200 == 0:
        print(step, cost_val)
h, c, a = sess.run([hypothesis, predicted, accuracy],
                   feed_dict={X: x_data, Y: y_data})
print("\nHypothesis: ", h, "\nCorrect (Y): ", c, "\nAccuracy: ", a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...