Отображение фигуры из другого класса в Google Colab с помощью matplotlib - PullRequest
0 голосов
/ 11 апреля 2020

В google-colab:

У меня есть код python, который использует класс из другого файла. У класса есть метод, который имеет следующий код:

def callbacks():
        plt.style.use("ggplot")
        plt.figure()
        plt.plot(N, self.H["loss"], label="train_loss")
        #code continues
        plt.legend()

        #save the fig
        plt.savefig(self.figPath)
        plt.close()

Этот метод (часть "обратных вызовов") вызывается каждый раз в каждую эпоху, когда я запускаю код основного файла .:

model.fit(trainX, trainY, validation_data=(testX, testY),
        batch_size=64, epochs=100, callbacks=callbacks, verbose=1) 

Но я не смог получить фигуру в гугл колабе, но она сохраняется в правильном месте (как и ожидалось). Что я сделал, но потерпел неудачу:

  1. с помощью plt.show () перед plt.savefig (..)
  2. runnning %matplotlib inline перед запуском кода

Что нужно сделать, чтобы отключить график при запуске эпох? Причина, по которой я хочу, чтобы они запускались при отображении эпох, заключается в том, что обновление рисунка на диске Google занимает некоторое время

1 Ответ

1 голос
/ 11 апреля 2020

После вызова plt.close() фигура закрывается. Единственный способ отобразить цифру после вызова вышеуказанного кода - это удалить plt.close() из кода, который вы вызываете.

В качестве крайней меры, если нет способа отредактировать этот код, вы можете выполнить monkey-patch функция close перед вызовом рассматриваемого кода; например:

plt.close = lambda: None

, но имейте в виду, что эта основная базовая функциональность, подобная этой, является очень плохой идеей и, вероятно, будет иметь непредвиденные побочные эффекты в других местах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...