편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2019.06.18

    신경망 구성 어디가 잘못된걸까요?


    
    from sklearn import svm,metrics
    from sklearn.model_selection import train_test_split
    import matplotlib.pyplot as plt
    import pandas as pd
    import tensorflow as tf
    import numpy as np
    
    data = pd.read_csv('기상.csv')
    
    tbl = data.drop('CREATE_DT', axis=1)
    
    a = ['최고기온', '일교차', '습도:관측', '강수량']
    
    x_data = np.array(tbl[a])
    
    y_data = np.array(tbl['출수량']).reshape(660, 1)
    
    X = tf.placeholder(tf.float32, shape=[None, 4])
    Y = tf.placeholder(tf.float32, shape=[None, 1])
    
    
    W1 = tf.Variable(tf.random_uniform([4, 4], -1., 1.))
    
    b1 = tf.Variable(tf.zeros([4]))
    
    L1 = tf.nn.relu(tf.add(tf.matmul(X, W1), b1))
    
    W2 = tf.Variable(tf.random_normal([4, 5]))
    b2 = tf.Variable(tf.zeros([5]))
    L2 = tf.nn.relu(tf.add(tf.matmul(L1, W2), b2))
    
    W3 = tf.Variable(tf.random_normal([5, 6]))
    b3 = tf.Variable(tf.zeros([6]))
    L3 = tf.nn.relu(tf.add(tf.matmul(L2, W3), b3))
    
    W4 = tf.Variable(tf.random_normal([6, 4]))
    b4 = tf.Variable(tf.zeros([4]))
    L4 = tf.nn.relu(tf.add(tf.matmul(L3, W4), b4))
    
    W5 = tf.Variable(tf.random_normal([4, 3]))
    b5 = tf.Variable(tf.zeros([3]))
    L5 = tf.nn.relu(tf.add(tf.matmul(L4, W5), b5))
    
    W6 = tf.Variable(tf.random_normal([3, 1]))
    b6 = tf.Variable(tf.zeros([1]))
    model = tf.add(tf.matmul(L5, W6), b6)
    
    
    
    
    cost = tf.reduce_mean(
        tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model))
    
    optimizer = tf.train.AdamOptimizer(learning_rate=0.01)
    train_op = optimizer.minimize(cost)
    
    init = tf.global_variables_initializer()
    sess = tf.Session()
    sess.run(init)
    
    for step in range(1000):
        sess.run(train_op, feed_dict={X: x_data, Y: y_data})
    
        if (step + 1) % 10 == 0:
            print(step + 1, sess.run(cost, feed_dict={X: x_data, Y: y_data}))
    
    prediction = tf.argmax(model, 1)
    target = tf.argmax(Y, 1)
    print('예측값:', sess.run(prediction, feed_dict={X: x_data}))
    print('실제값:', sess.run(target, feed_dict={Y: y_data}))
    is_correct = tf.equal(prediction, target)
    accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
    print('정확도: %.2f' % sess.run(accuracy * 100, feed_dict={X: x_data, Y: y_data}))
    sess.close()
    
    
    

    데이터 일부 : 이미지

    이제막 신경망에 대해서 알게된 학생입니다. 현재 신경망을 사용해 날씨 상태에 따른 점수를 학습하고 테스트해보고자합니다. 하지만 해당 코드를 돌렸을시 결과에 대한 값은 모두 0으로 처리되어 정확도가 100이 나와버리는 상황이 발생합니다.

    혹시 어떤 해결방안이 있는지 알 수 있을까요? 이미지

  • 프로필 알 수 없는 사용자님의 편집
    날짜2019.06.13

    신경망 구성 어디가 잘못된걸까요?


    
    from sklearn import svm,metrics
    from sklearn.model_selection import train_test_split
    import matplotlib.pyplot as plt
    import pandas as pd
    import tensorflow as tf
    import numpy as np
    
    data = pd.read_csv('기상.csv')
    
    tbl = data.drop('CREATE_DT', axis=1)
    
    a = ['최고기온', '일교차', '습도:관측', '강수량']
    
    x_data = np.array(tbl[a])
    
    y_data = np.array(tbl['출수량']).reshape(660, 1)
    
    X = tf.placeholder(tf.float32, shape=[None, 4])
    Y = tf.placeholder(tf.float32, shape=[None, 1])
    
    
    W1 = tf.Variable(tf.random_uniform([4, 4], -1., 1.))
    
    b1 = tf.Variable(tf.zeros([4]))
    
    L1 = tf.nn.relu(tf.add(tf.matmul(X, W1), b1))
    
    W2 = tf.Variable(tf.random_normal([4, 5]))
    b2 = tf.Variable(tf.zeros([5]))
    L2 = tf.nn.relu(tf.add(tf.matmul(L1, W2), b2))
    
    W3 = tf.Variable(tf.random_normal([5, 6]))
    b3 = tf.Variable(tf.zeros([6]))
    L3 = tf.nn.relu(tf.add(tf.matmul(L2, W3), b3))
    
    W4 = tf.Variable(tf.random_normal([6, 4]))
    b4 = tf.Variable(tf.zeros([4]))
    L4 = tf.nn.relu(tf.add(tf.matmul(L3, W4), b4))
    
    W5 = tf.Variable(tf.random_normal([4, 3]))
    b5 = tf.Variable(tf.zeros([3]))
    L5 = tf.nn.relu(tf.add(tf.matmul(L4, W5), b5))
    
    W6 = tf.Variable(tf.random_normal([3, 1]))
    b6 = tf.Variable(tf.zeros([1]))
    model = tf.add(tf.matmul(L5, W6), b6)
    
    
    
    
    cost = tf.reduce_mean(
        tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model))
    
    optimizer = tf.train.AdamOptimizer(learning_rate=0.01)
    train_op = optimizer.minimize(cost)
    
    init = tf.global_variables_initializer()
    sess = tf.Session()
    sess.run(init)
    
    for step in range(1000):
        sess.run(train_op, feed_dict={X: x_data, Y: y_data})
    
        if (step + 1) % 10 == 0:
            print(step + 1, sess.run(cost, feed_dict={X: x_data, Y: y_data}))
    
    prediction = tf.argmax(model, 1)
    target = tf.argmax(Y, 1)
    print('예측값:', sess.run(prediction, feed_dict={X: x_data}))
    print('실제값:', sess.run(target, feed_dict={Y: y_data}))
    is_correct = tf.equal(prediction, target)
    accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
    print('정확도: %.2f' % sess.run(accuracy * 100, feed_dict={X: x_data, Y: y_data}))
    sess.close()
    
    
    

    데이터 일부 : 이미지

    이제막 신경망에 대해서 알게된 학생입니다. 현재 신경망을 사용해 날씨 상태에 따른 점수를 학습하고 테스트해보고자합니다. 하지만 해당 코드를 돌렸을시 결과에 대한 값은 모두 0으로 처리되어 정확도가 100이 나와버리는 상황이 발생합니다.

    혹시 어떤 해결방안이 있는지 알 수 있을까요? 이미지