-macOS- Mojevaで日本語環境のTeXShopを使う

macOS Mojeva にアップデートした際にTeXShopコンパイルが通らなくなったので,その際の対策のメモです.

以下,全てターミナルから実行します.

まずは,リポジトリを最新版にアップデートします.

$ sudo tlmgr update --self --all
Password:
 

続いて,ヒラギノフォント系のダウンロードを行います.

$ sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
Password:
$ sudo tlmgr pinning add tlcontrib '*'
$ sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate-macos
$ sudo cjk-gs-integrate --link-texmf --cleanup --force
$ sudo cjk-gs-integrate-macos --link-texmf --force
$ sudo mktexlsr
$ sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron
 
最後にTeXShop関係の設定を行います.
$ sudo defaults write TeXShop FixLineNumberScroll NO
$ sudo defaults write TeXShop SourceScrollElasticity NO
$ sudo defaults write TeXShop FixPreviewBlur YES
 

-Mac- ターミナルからゴミ箱を強制的に空にする

macOSのゴミ箱の中を空にしようとした時に,
ファイルがシステムで使用中
などのエラー表示が出てゴミ箱を空にできない場合は,ターミナルから削除することができます.

以下のように,ターミナルにコマンドを入力します.
-rf の後にはスペースが入ります.また,***には削除したいフォルダ,またはファイルを選択して,ターミナル内にドラッグ&ドロップすれば,それらのアドレスが入ります.

パスワードを要求されるので,ログインパスワードを入力します.

$ sudo rm -rf ***
Password:
 

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"というファイルが変な場所に生成されてしまった場合に生じるようです.

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

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

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

まずは,(General)一般タブ.

f:id:HidehikoMURAO:20190121231209p:plain

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

f:id:HidehikoMURAO:20190121231229p:plain

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

f:id:HidehikoMURAO:20190121231249p:plain

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

 

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

-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 に短縮されていることがわかります.

-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])
 

-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 を実行した後である必要があります).