在Colab中运行py文件时,无法使用%matplotlib笔记本或%matplotlib笔记本

时间:2020-07-11 10:59:40

标签: python matplotlib ipython google-colaboratory

我有一个名为utils.py的文件。在该文件中,我有一个名为plot_results的函数,定义如下:

def plot_results(results, epochs):
    """
    The function to show results on each epoch.

    Parameters:
        results (keras.history): History of each epoch. It comes directly from keras.
        epochs (int): The number of epochs.
    """
    _, (ax1, ax2) = plt.subplots(1, 2)

    ax1.set_xlabel("Epochs")
    ax1.set_ylabel("Losses")
    ax1.plot(
        range(1, epochs+1),
        results.history['val_loss'],
        label="Validation loss",
        marker='o')
    ax1.plot(
        range(1, epochs+1),
        results.history['loss'],
        label="loss",
        marker='o')
    ax1.legend()

    ax2.set_xlabel("Epochs")
    ax2.set_ylabel("Accuracies")
    ax2.plot(
        range(1, epochs+1),
        [accuracy * 100 for accuracy in results.history['accuracy']],
        label="Accuracy",
        marker='o')
    ax2.plot(
        range(1, epochs+1),
        [accuracy * 100 for accuracy in results.history['val_accuracy']],
        label="validation accuracy",
        marker='o')
    ax2.legend()

    plt.show()

我还有一个名为main.py的文件,在该文件中我称为plot_results。当我在本地计算机上运行main.py时,可以正确地看到绘图。

但是当我在google colab单元中将其运行为:

! python main.py --ne 1

我刚得到<Figure size 640x480 with 2 Axes> 根据{{​​3}}我尝试过:

%matplotlib inline
! python main.py --ne 1

并且:

%matplotlib notebook
! python main.py --ne 1

并且:

%matplotlib inline
%matplotlib notebook
! python main.py --ne 1

但是它们都不起作用。 如何在该函数中显示情节?

1 个答案:

答案 0 :(得分:1)

尝试一下

%run main.py

它将像逐行运行一样。