TensorFlow はじめました
入門書を購入しました!
TensorFlow はじめました 著:有山 圭二
http://goo.gl/forms/2IsX177eJ3CpNKng1
Anaconda + PyCharm環境を作ったところで
入門書に挑戦。
(現時点でPython文法は理解していない)
てんそるとは
n次元の多次元配列。
ふろー?
データ処理の流れ。データフローグラフという。
Pythonでなにする?
Pythonはてんそるふろーというデータ処理マシンを
操作するスクリプトだと考えるのがよさそう。
なので、てんそるふろー自体がPythonで組まれているわけではない
最初にデータ型、グラフを定義し、セッションを開始して
データ処理を実行する、という感じ。
だから
リスト1.1
const1 = tf.constant(2)
const2 = tf.constant(3)add_op = tf.add(const1, const2)
print(add_op)
のようなコードでも"add_op" が示すものは単なる数値ではないので
Tensor(" Add: 0", shape =(), dtype = int 32)
という文字列が表示されるだけ。
pycharm
今回インストールしたのは
PyCharm Community Edition 2017.2.2
最初のプロジェクト myStudyを作ると
なぜかバックグラウンド処理がはじまった・・・。
Updating Python Interpreter...
しばらくすると Anaconda consoleがつかえなくなった?なんで?
結局Anacondaをいったんアンインストール・・・
とりあえず
>conda create -n py36 python=3.6
これを標準として
PyCharm
Default Settings -> Python Interpreter を
envs\py36\python.exe に設定。
TensorFlowのサンプルは
envs\tensorflow\python.exe に設定。
これでtensorflowサンプルコード実行できた!
PyCharm | Continuum Analytics: Documentation
参考記事
Download PyCharm: Python IDE for Professional Developers by JetBrains
PyCharm のインストール – Python でデータサイエンス
pycharm と anaconda連携
pycharmとanacondaの連携(初心者向け) - 超初心者によるpythonメモ書き
Tensor Flow
環境:
Core i7-7700HQ 定格2.80GHz
GTX1070 8GB
8GB DDR4 SO-DIMM
Win10 Home 64 bit
まずはインストール
Installing TensorFlow on Windows | TensorFlow
1. CUDA
Installation Guide Windows :: CUDA Toolkit Documentation
Patch2もインストール。
2.cuDNN
NVIDIA cuDNN | NVIDIA Developer
3. Anaconda
Download Anaconda Now! | Continuum
最新4.4をインストール
Python3.6なのだが、環境を作るときにpython3.5を指定する。
Anaconda Prompt起動
C:> conda create -n tensorflow python=3.5
C:> activate tensorflow
# Install GPU version tensor flow
(tensorflow)C:> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.2.1-cp35-cp35m-win_amd64.whl
5.Validate
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
一行ずつ入力・・・
>>> import tensorflow as tf
エラー・・・
ImportError: No module named '_pywrap_tensorflow_internal'
検索・・・
windowsにネイティブサポートしたTensorflowを動かす - Qiita
なるほど、VS Redistributableが足りないらしい?
入れてみて、もう一度!
ちがうみたい。
Redistは、anacondaでインストール済みのようだ。
こっちの記事
CUDA - TensorFlow importエラーについて(74099)|teratail
cuDNN 6.0 -> 5.1にインストールしなおし。。。
ファイルを置き換え
>>> import tensorflow as tf
成功!
>>> sess = tf.Session()
2017-07-22 02:27:49.195206: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.195814: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.197318: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.197765: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.198217: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.198701: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.199164: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:49.199214: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-07-22 02:27:50.630526: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:940] Found device 0 with properties:
name: GeForce GTX 1070
major: 6 minor: 1 memoryClockRate (GHz) 1.645
pciBusID 0000:01:00.0
Total memory: 8.00GiB
Free memory: 6.67GiB
2017-07-22 02:27:50.630665: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:961] DMA: 0
2017-07-22 02:27:50.631359: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0: Y
2017-07-22 02:27:50.631775: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0)
なんかいっぱいログが出た。
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
よし!なんとか完了。
とりあえずここまで。
次回は
Getting Started With TensorFlow | TensorFlow
にすすむ
Uniqueness Requirement for Custom Permissions (Android 5.0)
Lollipopのパーミッションの仕組みを調査。(新しい話題ではないですが)
Custom Permissionとは、(SDK既定のパーミッションとは別に)アプリのManifestで新しく<permission>宣言することで追加する独自のパーミッション。
KitKat4.4以前の場合、同一のパーミッション名であれば、最初にインストールされたアプリのProtectionLevelが有効になるというルールだった。(おなじpermission宣言をしているアプリがあとからインストールされても無視)これによって引き起こされる問題は下記の記事をご参考。
参考:
摩訶不思議Androidパーミッション - pochi-pの絵日記
Android の組込みアプリ以外のパーミッションの取り扱い - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech
Androidのカスタムパーミッションで顧客情報流出のおそれ | トレンドマイクロ セキュリティブログ
Lollipop 5.0以降では、すでにインストール済みアプリのパーミッションと同一のパーミッション宣言を持つアプリは、インストールが拒否されるそうです。
参考:
Android 5.0 Behavior Changes | Android Developers
PackageInstaller | Android Developers
で、このあたらしいLollipopのしくみですが、下記の記事で脆弱性が指摘されているとのこと。(まだ理解できてません・・)
この記事については次回調べます・・・
5/25 訂正、これはPackageInstallerActivityの問題みたい。KitKat以降は問題ないみたい。ややこしい。