Jovian
⭐️
Sign In
In [ ]:
import jovian
jovian.commit()
[jovian] Saving notebook..
In [2]:
import tensorflow as tf
import numpy as np
import datetime
import glob
import cv2

import utils.deeplabv3_ as build_model
import utils.draw_predict as dp
import utils.call_data as cd

class_num = 2
learning_rate = 0.001
total_epoch = 300
batch_size = 1
In [ ]:
csvs = glob.glob('../dataset/Labelbox/*')

total_x = None

first = True
for csv in csvs:
    f_name = csv[20:-4]

    x_data_path = '../dataset/' + f_name + '/trn_img'
    y_data_path = '../dataset/' + f_name + '/trn_labelmask'
    train_x, train_y = cd.call_dataset(x_path=x_data_path,
                                      y_path=y_data_path)
    
    if first == True:
        total_x = train_x
        total_y = train_y
        first = False
    else:
        total_x = np.vstack([total_x, train_x])
        total_y = np.vstack([total_y, train_y])
    
print('data load complete!!')
    
test_img = total_x[0]
test_img = test_img.reshape([1, test_img.shape[0], test_img.shape[1], test_img.shape[2]])

tf.reset_default_graph()
    
X = tf.placeholder(tf.float32, shape=[None, None, None, 3])
Y = tf.placeholder(tf.int32, shape=[None, None, None])

model = build_model.deeplabv3(X, class_num, True)
predict = tf.argmax(model, 3)

cost = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = model, labels = Y))
train_op = tf.train.AdamOptimizer(learning_rate).minimize(cost)

sess = tf.Session()
sess.run(tf.global_variables_initializer())

print('Data shape : {}'.format(total_x.shape))

for epoch in range(total_epoch):
    print('Epoch : {} ['.format(epoch + 1), end='')
    
    total_cost = 0
    avg_cost = 0
    
    for x_c in range(total_x.shape[0]):
        tr_x, tr_y = cd.data_reshape(total_x[x_c], total_y[x_c])
        
        _, c = sess.run([train_op, cost], feed_dict = {X : tr_x, Y : tr_y})
         
        total_cost += c
        if x_c % int(total_x.shape[0] / 10) == 0:
            print('=', end='')
            
    avg_cost = total_cost / total_x.shape[0]
    
    print('] cost : {0:.7}'.format(avg_cost))
    
    p = sess.run([predict], feed_dict = {X : test_img})
    segmentation = dp.draw_pixel(p[0][0], class_num)
    cv2.imwrite('./test/' + str(epoch) + '.png', segmentation)
    
saver = tf.train_Saver()
saver.save(sess, './model/total')
WARNING: Logging before flag parsing goes to stderr. W1019 15:10:55.848995 125108 deprecation_wrapper.py:119] From C:\Users\th_k9\Desktop\try_pupil_detection\tensorflow_version\utils\deeplabv3_.py:154: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead. W1019 15:10:55.857976 125108 deprecation_wrapper.py:119] From C:\Users\th_k9\Desktop\try_pupil_detection\tensorflow_version\utils\deeplabv3_.py:155: The name tf.get_variable is deprecated. Please use tf.compat.v1.get_variable instead. W1019 15:10:55.868921 125108 deprecation.py:506] From C:\Users\th_k9\AppData\Local\Continuum\anaconda3\envs\Kimtae\lib\site-packages\tensorflow\python\ops\init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor
data load complete!!
W1019 15:10:55.920782 125108 deprecation_wrapper.py:119] From C:\Users\th_k9\Desktop\try_pupil_detection\tensorflow_version\utils\deeplabv3_.py:168: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead. W1019 15:10:55.941727 125108 deprecation.py:323] From C:\Users\th_k9\Desktop\try_pupil_detection\tensorflow_version\utils\deeplabv3_.py:113: batch_normalization (from tensorflow.python.layers.normalization) is deprecated and will be removed in a future version. Instructions for updating: Use keras.layers.BatchNormalization instead. In particular, `tf.control_dependencies(tf.GraphKeys.UPDATE_OPS)` should not be used (consult the `tf.keras.layers.batch_normalization` documentation). W1019 15:10:58.406757 125108 deprecation_wrapper.py:119] From C:\Users\th_k9\Desktop\try_pupil_detection\tensorflow_version\utils\deeplabv3_.py:29: The name tf.image.resize_bilinear is deprecated. Please use tf.compat.v1.image.resize_bilinear instead.
Data shape : (4956, 480, 640, 3) Epoch : 1 [===========] cost : 0.1395104 Epoch : 2 [===========] cost : 0.01141738 Epoch : 3 [===========] cost : 0.001912029 Epoch : 4 [===========] cost : 0.000842291 Epoch : 5 [===========] cost : 0.0006999336 Epoch : 6 [===========] cost : 0.0006306354 Epoch : 7 [===========] cost : 0.0006102638 Epoch : 8 [===========] cost : 0.000582106 Epoch : 9 [===========] cost : 0.0005704459 Epoch : 10 [===========] cost : 0.0005584873 Epoch : 11 [===========] cost : 0.000551593 Epoch : 12 [===========] cost : 0.0005447821 Epoch : 13 [===========] cost : 0.0005385838 Epoch : 14 [===========] cost : 0.0005342904 Epoch : 15 [===========] cost : 0.0005319647 Epoch : 16 [===========] cost : 0.0005318832 Epoch : 17 [===========] cost : 0.0005239991 Epoch : 18 [===========] cost : 0.0005206903 Epoch : 19 [===========] cost : 0.0005173317 Epoch : 20 [===========] cost : 0.0005140589 Epoch : 21 [===========] cost : 0.0005124908 Epoch : 22 [===========] cost : 0.0005091957 Epoch : 23 [===========] cost : 0.0005072264 Epoch : 24 [===========] cost : 0.0005045646 Epoch : 25 [===========] cost : 0.0005139258 Epoch : 26 [===========] cost : 0.0005026506 Epoch : 27 [===========] cost : 0.0004999505 Epoch : 28 [===========] cost : 0.0004977937 Epoch : 29 [===========] cost : 0.0004953456 Epoch : 30 [===========] cost : 0.0004931544 Epoch : 31 [===========] cost : 0.0004904196 Epoch : 32 [===========] cost : 0.0004894213 Epoch : 33 [===========] cost : 0.0004861307 Epoch : 34 [===========] cost : 0.0004853622 Epoch : 35 [===========] cost : 0.0004841891 Epoch : 36 [===========] cost : 0.0004836856 Epoch : 37 [===========] cost : 0.0004803619 Epoch : 38 [===========] cost : 0.0004771975 Epoch : 39 [===========] cost : 0.0004741786 Epoch : 40 [===========] cost : 0.0004816352 Epoch : 41 [===========] cost : 0.0004717966 Epoch : 42 [===========] cost : 0.0004702682 Epoch : 43 [===========] cost : 0.0004693394 Epoch : 44 [===========] cost : 0.0004661021 Epoch : 45 [===========] cost : 0.0004639434 Epoch : 46 [==========
In [ ]: