Spyder зависает при запуске сеанса в tesorflow - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь построить модель, которая классифицирует изображения из наборов данных c трафика Бельгии, но spyder зависает, когда я пытаюсь запустить оптимизатор и обучить операцию в sessions.run []. Я прикрепил код ниже.


graph = tf.Graph()

with graph.as_default():


    images_X = tf.compat.v1.placeholder(tf.float32,shape = [None,32,32,3])
    labels_X = tf.compat.v1.placeholder(tf.int32,shape = [None])

    #biasInit = tf.constant_initializer(0.1, dtype=tf.float32)
    # Initializer
    biasInit = tf.initializers.GlorotUniform()


    #conv layer 1 - num_filtewrs = 128, kernel size = [6,6]
    conv_1 = Conv2D(filters = 128,kernel_size = [6,6],bias_initializer = biasInit)(images_X)

    #batch normalization
    bn_1 = BatchNormalization(center = True,scale = True)(conv_1)

    #maxpoloing 
    pool_1 = MaxPooling2D(pool_size = (2,2))(bn_1)

    #conv layer 2 
    conv_2 = Conv2D(filters = 256,kernel_size = [6,6] , strides = (2,2),
                    bias_initializer=biasInit)(pool_1)

    #Batch normalization 2
    bn_2 = BatchNormalization(center = True,scale = True)(conv_2)

    pool_2 = MaxPooling2D(pool_size = (2,2))(bn_2)

    #faltten
    images_flat = Flatten()(pool_2)

    #dense layer - units = 512
    fc_1 = Dense(units = 512,activation = 'relu')(images_flat)

    bn_3 = BatchNormalization(center = True,scale = True)(fc_1)

    dropout = Dropout(0.25)(bn_3)

    #logits will be of the size [None,62]
    logits = Dense(units = 62,activation = 'relu')(dropout)

    #converting the lofits - [None,62] to labels - [None]
    predicted_labels = tf.argmax(logits, axis=1)


    loss_op = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits,
                                                                         labels = labels_X))



    update_ops = tf.compat.v1.get_collection(tf.compat.v1.GraphKeys.UPDATE_OPS)
    with tf.control_dependencies(update_ops):
        # Create an optimizer, which acts as the training op.
        train = tf.compat.v1.train.AdamOptimizer(learning_rate=0.10).minimize(loss_op)


    init_op = tf.compat.v1.global_variables_initializer()    


print("images_flat: ", images_flat)
print("logits: ", logits)
print("loss: ", loss_op)
print("predicted_labels: ", predicted_labels)    

# Create a session to run the graph we created.
session = tf.compat.v1.Session(graph=graph, config=tf.compat.v1.ConfigProto(log_device_placement=True))
session.run(init_op)    


for i in range(10):
    _, loss_value = session.run([train, loss_op], feed_dict={images_X: images_array, labels_X: labels_array})
    print("Loss: ", loss_value)

когда я запускаю программу построчно, она работает хорошо до последнего для l oop, когда доходит до последнего для l oop, память уходит до 99% и весь р c зависает.

...