Python/TensorFlow
表示
< Python
TensorFlow
[編集]TensorFlowは、Googleが開発したオープンソースの数値計算ライブラリであり、ニューラルネットワークなどの機械学習アプリケーションの実装に使用されます。TensorFlowには、グラフによる計算の最適化、自動微分機能、分散処理などの高度な機能が含まれており、複雑な機械学習モデルの実装に非常に便利です。また、Python、C++、Java、Goなどの言語をサポートしており、開発者が使いやすいように設計されています。
インストール
[編集]TensorFlowをインストールする必要があります。ターミナルで以下のコマンドを実行してください。
$sudopipinstalltensorflow
例
[編集]TensorFlowはそのサイトにチュートリアルを用意しており、TensorFlowを学ぶ上で役立つでしょう。ただし、翻訳が不正確なページが多いため、可能な限り英語版を読むことをおすすめします。
次に、TensorFlowを使って線形回帰を行う例を見ていきましょう。
importtensorflowastf importnumpyasnp importmatplotlib.pyplotasplt # トレーニングデータを生成X_train=np.linspace(0,10,100)Y_train=X_train*2+np.random.randn(*X_train.shape)*0.33 # 入力のプレイスホルダーを設定X=tf.placeholder("float")Y=tf.placeholder("float")# モデルのパラメータを設定w=tf.Variable(0.0,name="weights")b=tf.Variable(0.0,name="bias")# モデルを定義Y_pred=tf.add(tf.multiply(X,w),b)# コスト関数を定義cost=tf.reduce_mean(tf.square(Y_pred-Y))# 最適化アルゴリズムを設定learning_rate=0.01 optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)# トレーニングを開始init=tf.global_variables_initializer() withtf.Session()assess: sess.run(init)forepochinrange(100): forx,yinzip(X_train,Y_train): sess.run(optimizer,feed_dict={X:x,Y:y})print(sess.run(w))print(sess.run(b))# 結果をプロット plt.plot(X_train,Y_train,"ro",label="Training data") plt.plot(X_train,X_train*sess.run(w)+sess.run(b),label="Fitted line") plt.legend() plt.show()
このコードでは、TensorFlowを使って線形回帰モデルを定義し、トレーニングデータを使って最適化します。最適化には勾配降下法が使われます。また、モデルパラメータにはTensorFlowの変数を使います。
最後に、結果をプロットしています。トレーニングデータにおおよそ合致する線形モデルが得られるはずです。
TensorFlowには多くの機能があり、深層学習のフレームワークとして広く使われています。この簡単な例でしたが、本格的に深層学習を行うにあたっての基礎的な知識を得ることができました。