最近Python扱うことが多いので、統合開発環境は何を使おうかと悩んでいて、PyCharmを使ってみることにしました。どうせならPyCharmでTensorflowをサンプルコードがてら動かしてみようという試みです。
Tensorflow環境構築後の記事という位置づけなので、AnacondaとAnacondaでのTensorflowの仮想環境は構築済とします。
AnacondaでのTensorflow仮想環境構築は以下の記事を参照してください。
参考記事:GPU版TensorFlow環境構築(Windows 10)
目次
今回の環境
・OS : Windows10(64bit)
・GPU: GeForce GTX 950
・Anaconda環境構築済(Version5.0.1)
・AnacondaにてTensorflow(GPU版)仮想環境構築済(仮想環境名:myTensorflow)
(参考記事:GPU版TensorFlow環境構築(Windows 10))
手順
(1) PyCharmのダウンロード
では、まずPyCharmのダウンロードを行いましょう
参考サイト:PyCharm: Python IDE for Professional Developers by JetBrains
お金がないので無償版のCommunityをダウンロードします。
DOWNLOADを押すと、自動でインストーラがダウンロードされました。
(2) PyCharmのインストール
では、ダウンロードしたインストーラを起動しましょう。
インストール場所は取りあえずデフォルトとしました。
.pyのファイルを開くときに、PyCharmを起動したい場合はCreate Associationsにチェックを入れてください。デスクトップショートカットも作りたかったので、「64-bit launcher」にもチェックを入れました。
インストールが開始されます。
無事インストールが完了しました。
(3) PyCharmの起動と設定
早速PyCharmを起動すると以下のような画面が出ました。
設定ファイルをインポートするか問われているようですが、使ったことないので取りあえずDo not import settingsで良さそうです。
以下のカスタマイズはさしあたりはスキップでよいでしょう。
スタート画面に遷移します。この画面を見るとAndroid Studioを思い出してしまう。早速「Create New Project」で新しいプロジェクトを作っていきましょう。
Project名は自由に決めてください。今回は「TensorflowTest」としました。
「Existing interpreter」から、既に構築済の仮想環境のインタプリタを選択していきます。
右の歯車マークをクリックし、「Add Local」をクリックします。
「Conda Environment」より、右側の「…」を押して仮想環境を選択します。
Anacondaのフォルダの「envs\仮想環境名\python.exe」を選択します。私の今回使用した仮想環境はmyTensorFlowで、Tensorflowの環境構築を既に行っている仮想環境となります。
これで、インタプリタを選択できたのであとは「OK」で閉じます。
プロジェクトを「Create」しましょう。これでプロジェクトの作成は完了です。
(4) Tensorflowコードの実行
それでは、テストコードを実行してプロジェクトが実行できるか確認しましょう。
Project上で右クリックして、「New」→「Python File」で新しいファイルを作成します。
ファイル名は適当でOKです。
作ったファイルに、コードを書きこんでいきますが、今回は「TensorflowのMNIST For ML Beginnersに挑戦」で使ったコードをそのまま投げ込んでみました。
一応コードは以下となります。
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
# Mnistに使うデータセットをインポートする
mnist = input_data.read_data_sets('/tmp/tensorflow/mnist/input_data',
one_hot=True)
# グラフの作成
x = tf.placeholder(tf.float32, [None, 784]) # 入力するPlaceholder
W = tf.Variable(tf.zeros([784, 10])) # 重み
b = tf.Variable(tf.zeros([10])) # バイアス
y = tf.matmul(x, W) + b #内積計算とバイアスの加算
# 正解ラベル用のplaceholeder
y_ = tf.placeholder(tf.float32, [None, 10])
# 損失の計算方法と、オプティマイザーを定義
cross_entropy = tf.reduce_mean(
tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
# セッションの作成と初期化
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
# 学習部(1000回学習)
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
# テスト部
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images,
y_: mnist.test.labels}))
以下のように、このコードを入力し、実行します。実行はRunのタブから実行するか、「Shift」+「Alt」+「F10」でRun可能です。
実行すると以下のような結果が得られました。一番下に出ている「0.9194」がMNISTの正解率と思われますが、実行に成功しているようです。
まとめ
今回はPythonの統合開発環境としてPyCharmを試し、Tensorflowのコードの実行を行いました。
開発環境は基本は好きなものを使えばよいと思いますが、もし迷っている人がいたら、一つPyCharmも候補として検討してみてはいかがでしょうか。