2019年1月31日木曜日

WIndows10 Google Chromeが起動しない

Windows10でGoogle Chromeが起動しなくなったときの対処法のメモです.

C:\Users\ユーザー名\AppData\Local\Google\Chrome\User Data

の"Default"フォルダを削除する(Default フォルダーがない場合はProfile 1 フォルダー).

Default フォルダを削除した後にChromeを起動すると,無事に立ち上がるはずです.

このように,Windows10においてGoogle Chromeが起動しなくなるという現象は,は"chrome.exe"というファイルが変な場所に生成されてしまった場合に生じるようです.

2019年1月30日水曜日

Homebrewのupdateとupgrade

Homebrewのupdate
brew update
はHomebrew自体のアップデートのみ行います.

一方でupgrade
brew upgrade
はHomebrew自体のアップデートに加えてHomebrew経由でインストールしたパッケージのアップデートも行います.

2019年1月7日月曜日

[markdown] センタリング

Markdown記法に,センタリング(中央寄せ)するための記法はないので,センタリングする際にはhtmlを記述します.

htmlのdivタグを使ってセンタリングする場合は以下のようにします.

<div style="text-align: center;">
センタリングしたい文章
</div>

すると,以下のように記述されます.
センタリングしたい文章

text-alignの値は以下のように指定することで変更可能です.
* 中央寄せ: center
* 右寄せ: right
* 左寄せ: left

2019年1月6日日曜日

[markdown] 番号付きリスト

markdown記法では,数値+半角ドットで番号付きリストを記述可能です.番号の内容は何でも良く,実際に表示される際に適切な番号で書き換えて表示されます.
自動的に番号が振られるので,すべて 1. 内容 で記載することが一般的です.
ただし,数値+半角ドットと箇条書きの項目の間には半角スペースを1つ入れなければなりません.

記述例:
1. 番号付きリスト1
    1. 番号付きリストネスト1
    1. 番号付きリストネスト2
1. 番号付きリスト2
1. 番号付きリスト3

表示例:
1. 番号付きリスト1
    1. 番号付きリストネスト1
    2. 番号付きリストネスト2
2. 番号付きリスト2
3. 番号付きリスト3

2019年1月5日土曜日

[markdown] 箇条書き

markdown記法において,ハイフン,プラス,アスタリスクのいずれかで箇条書きリストを記述することができます.
なお,ハイフン,プラス,アスタリスクと箇条書きの項目の間には半角スペースを1つ入れる必要があります.

記載例:
- 箇条書き1
    - 箇条書きネスト1
        - 箇条書きネストのネスト1
        - 箇条書きネストのネスト2
    - 箇条書きネスト2
- 箇条書き2

このように記載すると,以下のように表示されます.
● 箇条書き1
    ○ 箇条書きネスト1
        ■ 箇条書きネストのネスト1
        ■ 箇条書きネストのネスト2
    ○ 箇条書きネスト2
● 箇条書き2


2019年1月4日金曜日

[MetaShape] PhotoScanからMetaShapeへのバージョンアップ

PhotoScanからMetaShapeにアップデートするには,一旦,PhotoScanをアンインストールした後にMetaShapeをインストールします.
そして,MetaShapeを立ち上げれば,再度ライセンスコードを入力する必要なくアクティベート状態になります.その他の設定も引き継がれるので,特に設定を変更する必要はありません.

設定を行うには Tools > Preference を選択します.
以下にPreferenceのウィンドウ例を示します.

まずは,(General)一般タブ.
テーマは,上記の例では「クラシック」になっていますが,ライト,ダークモードも準備されています.また,モードは「アナグリフ」となっていますが,これはグラフィックカードがクワッドバッファステレオ*に対応していない限り変更することができません.
最下部にある「ログファイルに書き出す」にチェックを入れた場合は,MetaShapeのログを保存するディレクトリを指定します(不具合等があって,処理内容を見たい時などにチェックを入れる).

続いてGPUタブ.
使用するGPUにチェックを入れます.2コア以下のGPUが設置されている場合は,「GPUアクセラレーション使用時にCPUを利用する」をオンにします.上記の例のように3コア以上の場合はチェックを外します.

詳細タブ.

設定の詳細に関してはまだ確かめていませんが,PhotoScanと大きな差はないようです.

* クワッドバッファステレオ:従来の2バッファでなく4つのバッファを用いてわずかに異なった個々の視点を提供する技術

2019年1月3日木曜日

[Keras] GPUの設定

ディープラーニングの計算量は比較的大量になることが多く,GPUを使用しないと非常に時間がかかることになるので,Keras を使用するにはGPU(NVDIA のグラフィクスカード GTX シリーズ)を利用することが効果的です.

以前の投稿で作成した mykras 環境と同様に mykeras-gpu 環境を作成して,Jupyter Notebook のインストールを行う例を以下に示します.

まずは,Anaconda Promptで,mykerasをアクティベートします.
続いてKeras をインストールする際のパッケージ名は "keras-gpu" なので,"conda install keras-gpu"を実行します.

(base) C:\Users\xxx>activate mykeras
(mykeras) C:\Users\xxx>conda install keras-gpu

すると,以下のように実行が始まります.

Solving environment: done

==> WARNING: A newer version of conda exists. <==

  current version: 4.5.11
  latest version: 4.5.12

Please update conda by running


    $ conda update -n base -c defaults conda


## Package Plan ##

  environment location: C:\Users\Hidehiko MURAO\AppData\Local\conda\conda\envs\mykeras


  added / updated specs:

    - keras-gpu


The following packages will be downloaded:


    package                        |            build

    ---------------------------|-----------------
    keras-gpu-2.2.4            |                0           5 KB
    cudnn-7.1.4                  |        cuda9.0_0       192.3 MB
    tensorflow-base-1.12.0     |gpu_py36h6e53903_0       180.8 MB
    _tflow_select-2.1.0       |              gpu           3 KB
    tensorflow-gpu-1.12.0      |       h0d30ee6_0           3 KB
    cudatoolkit-9.0            |                1       339.8 MB
    tensorflow-1.12.0          |gpu_py36ha5f9131_0           4 KB
    ------------------------------------------------------------
                                           Total:       712.9 MB

The following NEW packages will be INSTALLED:


    cudatoolkit:     9.0-1

    cudnn:           7.1.4-cuda9.0_0
    keras-gpu:       2.2.4-0
    tensorflow-gpu:  1.12.0-h0d30ee6_0

The following packages will be UPDATED:


    tensorflow:      1.12.0-eigen_py36h67ac661_0 --> 1.12.0-gpu_py36ha5f9131_0

    tensorflow-base: 1.12.0-eigen_py36h45df0d8_0 --> 1.12.0-gpu_py36h6e53903_0

The following packages will be DOWNGRADED:


    _tflow_select:   2.2.0-eigen                 --> 2.1.0-gpu


Proceed ([y]/n)? y



Downloading and Extracting Packages

keras-gpu-2.2.4      | 5 KB      | ######################## | 100%
cudnn-7.1.4          | 192.3 MB  | #######################  | 100%
tensorflow-base-1.12 | 180.8 MB  | ############################################ | 100%
_tflow_select-2.1.0  | 3 KB      | ############################################ | 100%
tensorflow-gpu-1.12. | 3 KB      | ############################################ | 100%
cudatoolkit-9.0      | 339.8 MB  | ############################################ | 100%
tensorflow-1.12.0    | 4 KB      | ############################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

続いて,WindowsのPATH環境にcuda関連のDLLが格納されている
    C:\Users\xxx\AppData\Local\conda\conda\envs\mykeras\DLLs
を登録します.

Windows のコマンドプロンプトで
    control
と入力してコントロールパネルを起動します.

その後,
    システムとセキュリティ > システム
と選択して,
    システムの詳細設定
をクリックします.

さらに別ウィンドウが開くので,「詳細設定」タブの 「環境変数」をクリックします。
ユーザー環境変数に Path が既にあれば「編集」を押して

    %USERPROFILE%AppData\Local\conda\conda\envs\mykeras\DLLs

を追加します.

ユーザー変数に Path が無い場合は「新規」で作成します.システム変数の PATH に mykeras-gpu の DLL のパスが追加されるように記述します.

ここでGPUが動作するかをテストしてみます.テストはJupyter Notebookを使って行います.
テストには,以前にも用いた,keras 作者 Fchollet さんが用意してくれている exapmle で MNIST データセットを学習する mnist_cnn.py で試します.

実行結果は以下のようになります.

x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
60000/60000 [==============================] - 6s 102us/step - loss: 0.2660 - acc: 0.9188 - val_loss: 0.0667 - val_acc: 0.9799
Epoch 2/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0934 - acc: 0.9724 - val_loss: 0.0413 - val_acc: 0.9876
Epoch 3/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0678 - acc: 0.9799 - val_loss: 0.0375 - val_acc: 0.9870
Epoch 4/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0569 - acc: 0.9835 - val_loss: 0.0314 - val_acc: 0.9894
Epoch 5/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0478 - acc: 0.9860 - val_loss: 0.0315 - val_acc: 0.9890
Epoch 6/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0426 - acc: 0.9872 - val_loss: 0.0291 - val_acc: 0.9905
Epoch 7/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0384 - acc: 0.9886 - val_loss: 0.0331 - val_acc: 0.9892
Epoch 8/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0342 - acc: 0.9896 - val_loss: 0.0270 - val_acc: 0.9907
Epoch 9/12
60000/60000 [==============================] - 4s 71us/step - loss: 0.0325 - acc: 0.9902 - val_loss: 0.0311 - val_acc: 0.9903
Epoch 10/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0292 - acc: 0.9907 - val_loss: 0.0279 - val_acc: 0.9911
Epoch 11/12
60000/60000 [==============================] - 4s 70us/step - loss: 0.0276 - acc: 0.9913 - val_loss: 0.0247 - val_acc: 0.9916
Epoch 12/12
60000/60000 [==============================] - 4s 71us/step - loss: 0.0254 - acc: 0.9921 - val_loss: 0.0265 - val_acc: 0.9919
Test loss: 0.026480694237979514
Test accuracy: 0.9919

以前のテストでは,Epoch 1/12, 2/12(以前の例では 1/2, 2/2)では 64s かかっていたものが,今回はEpoch1で 6s で終了しており,Epoch2で 4s に短縮されていることがわかります.

2019年1月2日水曜日

[Keras] Keras のテスト

Keras が動作するかをテストしてみます.テストはJupyter Notebookを使って行います.
テストには,keras 作者の Fchollet さんが用意してくれている exapmle で MNIST データセット*を学習するもの mnist_cnn.py **を一部変更して試します.

実行結果は以下のようになります.

Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 2s 0us/step
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/2
60000/60000 [==============================] - 64s 1ms/step - loss: 0.2523 - acc: 0.9216 - val_loss: 0.0579 - val_acc: 0.9813
Epoch 2/2
60000/60000 [==============================] - 64s 1ms/step - loss: 0.0858 - acc: 0.9750 - val_loss: 0.0408 - val_acc: 0.9864
Test loss: 0.040848016864643434
Test accuracy: 0.9864


* MNIST は手書き文字の学習データです.
** mnist_cnn.py は以下のようなコードです(今回のテストにおいて変更した点は,コメントアウト -epochsの値を変更-してあります).
'''Trains a simple convnet on the MNIST dataset.
Gets to 99.25% test accuracy after 12 epochs
(there is still a lot of margin for parameter tuning).
16 seconds per epoch on a GRID K520 GPU.
'''

from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K

batch_size = 128
num_classes = 10
epochs = 12

# input image dimensions
img_rows, img_cols = 28, 28

# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()

if K.image_data_format() == 'channels_first':
    x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
    x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
    input_shape = (1, img_rows, img_cols)
else:
    x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
    x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
    input_shape = (img_rows, img_cols, 1)

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print('x_train shape:', x_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='relu',
                 input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])

print('Test accuracy:', score[1])

2019年1月1日火曜日

[Keras] Windows10にTensorFlow と Keras をインストール

セットアップ作業の中心となるのが Anaconda Prompt です.
Windows のメニューの Anaconda3 (64-bit) のところに Anaconda Prompt がありますので起動します.

今回は mykeras という名前の環境を作ってそこにセットアップしてみることにします.Anaconda Prompt 上でコマンド conda create -n mykeras を実行します.

(以下青字は,Anaconda Promptでの実行結果,なお'xxx'はユーザー名を示しています)

(base) C:\Users\xxx>conda create -n mykeras
WARNING: A space was detected in your requested environment path
'C:\Users\xxx\AppData\Local\conda\conda\envs\mykeras'
Spaces in paths can sometimes be problematic.
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.5.11
  latest version: 4.5.12

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: C:\Users\xxx\AppData\Local\conda\conda\envs\mykeras

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate mykeras
#
# To deactivate an active environment, use
#
#     $ conda deactivate

作成した mykeras へ実行環境を移すには,activate mykeras を実行します.

(以下青字は,Anaconda Promptでの実行結果,なお'xxx'はユーザー名を示しています)

(base) C:\Users\xxx>activate mykeras
(mykeras) C:\Users\xxx>

これによりプロンプト左端の( )の中がディレクトリから環境名 mykeras に切り変わります。

専用環境で最初に追加インストールするのは Jupyter Notebook です.
Anaconda Promptで conda install notebook を実行します.

(以下青字は,Anaconda Promptでの実行結果,なお'xxx'はユーザー名を示しています.また,以下の例ではすでにJupyter Notebookがインストールしてあったので,アップデートがかかっています)

(mykeras) C:\Users\xxx>conda install notebook
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.5.11
  latest version: 4.5.12

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: C:\Users\xxx\AppData\Local\conda\conda\envs\mykeras

  added / updated specs:
    - notebook

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    testpath-0.4.2             |           py37_0          92 KB
  ...(省略)...
    prometheus_client-0.5.0    |           py37_0          67 KB
    ------------------------------------------------------------
                                           Total:        40.9 MB

The following NEW packages will be INSTALLED:

    backcall:                0.1.0-py37_0
...(省略)...
    zeromq:                  4.2.5-he025d50_1

Proceed ([y]/n)? y


Downloading and Extracting Packages
testpath-0.4.2       | 92 KB     | ##################### | 100%
...(省略)...
prometheus_client-0. | 67 KB     | ######################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(mykeras) C:\Users\xxx>

でインストールします.
所々で Anaconda Prompt で 'Proceed ([y]/n)?' と聞かれる場面がありますが、特に説明が無い限り y (yes) を選択する前提とします.notebook インストールの最後にこのようなデバッグメッセージが表示されるバージョンがありますが、Windows のメニューを編集したことに関するもので問題ありません。

Jupyter Notebook のメニューが上手く追加されていない場合は,Anaconda Prompt の実行したい環境で

(実行したい環境へ移動)activate mykeras

 jupyter-notebook

とコマンドを打てばメニューから選ぶ場合と同じように実行可能です.

続いて,tensorflow,keras などのライブラリ群をインストールします.インストールには,Anaconda Prompt で conda install keras というコマンドを実行します.
このコマンドで以下のように依存ライブラリを一括してインストールしてくれます。

(mykeras) C:\Users\xxx>conda install keras
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.5.11
  latest version: 4.5.12

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: C:\Users\xxx\AppData\Local\conda\conda\envs\mykeras

  added / updated specs:
    - keras


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2018.11.29         |           py36_0         146 KB
    tensorflow-base-1.12.0     |eigen_py36h45df0d8_0        40.9 MB
...(省略)...
    hdf5-1.10.4                |       h7ebc959_0        19.2 MB
    ------------------------------------------------------------
                                           Total:       284.5 MB

The following NEW packages will be INSTALLED:

    _tflow_select:       2.2.0-eigen
    absl-py:             0.6.1-py36_0
...(省略)...
    zlib:                1.2.11-h62dcd97_3

The following packages will be UPDATED:

    backcall:            0.1.0-py37_0                --> 0.1.0-py36_0
    bleach:              3.0.2-py37_0                --> 3.0.2-py36_0
...(省略)
    wincertstore:        0.2-py37_0                  --> 0.2-py36h7fe50ca_0

The following packages will be DOWNGRADED:

    python:              3.7.2-h8c8aaf0_0            --> 3.6.8-h9f7ef89_0

Proceed ([y]/n)? y

Downloading and Extracting Packages
certifi-2018.11.29   | 146 KB    | ###################################### | 100%
tensorflow-base-1.12 | 40.9 MB   | ###################################### | 100%
...(省略)...
hdf5-1.10.4          | 19.2 MB   | ###################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(mykeras) C:\Users\xxx>

これで,インストールは完了しているはずなので,以下のように動作確認をしてみます.

>>> import tensorflow as tf
>>> hello = tf.constant('Hello TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
b'Hello TensorFlow!'
>>>

もしくは,JupyterNootebookから以下のように実行してみます(Jupyter Notebookを立ち上げる際には,mykeras へ実行環境,すなわち activate mykeras を実行した後である必要があります).