Spyder(Python 2.7.11)で次のコードを実行しようとしています。
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import tensorflow as tf
# settings
LEARNING_RATE = 1e-4
# set to 20000 on local environment to get 0.99 accuracy
TRAINING_ITERATIONS = 2000
DROPOUT = 0.5
BATCH_SIZE = 50
# set to 0 to train on all available data
VALIDATION_SIZE = 2000
# image number to output
IMAGE_TO_DISPLAY = 10
しかし、私はこのエラーを受け取りました:
line 10
%matplotlib inline
^
SyntaxError: invalid syntax.
誰かが私に説明をしてくれれば感謝しています。
追伸コードはKaggleコンペティションプロジェクトのDigit Recognizerからのものです
ラインマジックは、IPythonコマンドラインでのみサポートされます。 %something
は正しいPython構文ではないため、単純にスクリプト内で使用することはできません。
スクリプトからこれを行うには、IPython APIにアクセスし、run_line_magic
関数を呼び出す必要があります。
%matplotlib inline
の代わりに、スクリプトで次のようにする必要があります。
from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')
同様のアプローチは この回答 で説明されていますが、非推奨のmagic
関数を使用しています。
スクリプトはまだIPythonで実行する必要があることに注意してください。Vanilla Pythonの下で、get_ipython
関数はNone
とget_ipython().run_line_magic
はAttributeError
を発生させます。
ラインマジックはPython clではなくIPythonコマンドラインでのみサポートされているため、%matplotlib inline
の代わりに'exec(%matplotlib inline)'
を使用してください。
%matplotlib inline
の構文 '%'はiPython(マジックメソッドを処理するように設定されている)によって認識されますが、SyntaxErrorを生成するPython自体は認識されません。 ここに1つのソリューションがあります。
スクリプトの先頭に次のコードを含めると、matplotlib
環境(jupyter、水素atomプラグインなど)でIPython
がインラインで実行されます。コマンドラインから直接スクリプトを起動した場合でも引き続き機能します(matplotlib
はインラインで実行されず、チャートは通常どおりポップアップで開きます)。
from IPython import get_ipython
ipy = get_ipython()
if ipy is not None:
ipy.run_line_magic('matplotlib', 'inline')
これが機能しない理由にはいくつかの理由があります。
Matplotlibが正しくインストールされていない可能性があります。実行してみましたか:
conda install matplotlib
それがうまくいかない場合は、%PATH%環境変数を見てください。ライブラリとpythonパスが含まれていますか?
これは、Juliaを使用している場合です。
JuliaのIPythonの%matplotlibの類似物は、PyPlotパッケージを使用することです。これにより、IJuliaノートブックのインラインプロットを含むMatplotlibへのJuliaインターフェースが提供されます。 (numpyに相当するものは、デフォルトでJuliaに既にロードされています。)PyPlotはIJuliaのインラインプロットにデフォルト設定されているため、%matplotlib inlineのアナログはPyPlotを使用しています。