Не отображает точность для модели капсульной сети

#python #tensorflow #machine-learning #keras #data-science

Вопрос:

Это код, который у меня есть, и проблема в том, что он не печатает точность для каждой эпохи, которую я тренирую.

Вот ссылка на мой блокнот с кодом https://colab.research.google.com/drive/15Cxa9w_PfhJUa9EjizL20yP0sLwIGjNb?usp=sharing

Может ли кто-нибудь помочь мне напечатать точность и потери для моего кода, потому что он показывает вывод в виде nan% вместо некоторого значения в нем.

Код, который я вдохновлен или использую в проекте: https://github.com/Christian-Garrett/MRI_Brain_Scan_Computer_Vision_Classification

 with tf.Session() as sess:
    if restore_checkpoint and tf.train.checkpoint_exists(checkpoint_path):
         saver.restore(sess, checkpoint_path)
    else:
        init.run()

    for epoch in range(n_epochs):
        for iteration in range(1, n_iterations_per_epoch   1):
            start = (iteration-1)*batch_size
            stop = iteration*batch_size
            X_batch, y_batch = train_X[start:stop], train_y[start:stop]
            # Run the training operation and measure the loss:
            _, loss_train = sess.run(
                [training_op, loss],
                feed_dict={X: X_batch.reshape([-1, 56, 56, 1]),
                           y: y_batch,
                           mask_with_labels: True})
            print("rIteration: {}/{} ({:.1f}%)  Loss: {:.5f}".format(
                      iteration, n_iterations_per_epoch,
                      iteration * 100 / n_iterations_per_epoch,
                      loss_train),
                  end="")

        # At the end of each epoch, measure the validation loss and accuracy:
        loss_vals = []
        acc_vals = []
        for iteration in range(1, n_iterations_validation   1):
            start = (iteration-1)*batch_size
            stop = iteration*batch_size
            X_batch, y_batch = val_X[start:stop], val_y[start:stop]   
            loss_val, acc_val = sess.run(
                    [loss, accuracy],
                    feed_dict={X: X_batch.reshape([-1, 56, 56, 1]),
                               y: y_batch})
            loss_vals.append(loss_val)
            acc_vals.append(acc_val)
            print("rEvaluating the model: {}/{} ({:.1f}%)".format(
                      iteration, n_iterations_validation,
                      iteration * 100 / n_iterations_validation),
                  end=" " * 10)
        loss_val = np.mean(loss_vals)
        acc_val = np.mean(acc_vals)
        print("rEpoch: {}  Val accuracy: {:.4f}%  Loss: {:.6f}{}".format(
            epoch   1, acc_val * 100, loss_val,
            " (improved)" if loss_val < best_loss_val else ""))

        # And save the model if it improved:
        if loss_val < best_loss_val:
            save_path = saver.save(sess, checkpoint_path)
            best_loss_val = loss_val```


  [1]: https://i.stack.imgur.com/pTxm5.png
 

Комментарии:

1. Похоже, есть проблема с вашими ярлыками. Я не смог запустить ваш код, потому что набор данных был недоступен. Но следует отметить, что метки должны начинаться с 0 до num_class — 1