便利なアプリ
無料アプリ
Karabiner-Elements: キー配置やキーバインドを変更できる.
Amphetamine: (Caffeinの代わり) スリープ on/off
Sourcetree: gitのGUIアプリ, backlogとの連携はちょっとめんどくさいのでググる.
DBeaver: SQLを叩くためののGUI
QueryPie: SQLを叩くためののGUI開発終了した.
keybase
有料アプリ
Better Touch Tool トラックパッドやキーボードショートカットをカスタマイズができる.
Stay 外部モニターを使ったあとのアプリ配置がぐちゃぐちゃになる問題を解消してくれる.
intelliJ IDE:
めっちゃ便利らしい.全然便利じゃない.
PowerPoint
マスタースライドでヒラギノフォントが設定できない問題
Macでssh先をマウントしてfinder操作したいとき
osxfuseを使う
拡張子の無いファイルをfinderで開く際にdefaultのエディターを変更する方法
拡張子があれば右クリック>情報から変更できるがない場合はこの方法では変更ができない. githubに素晴らしい方法があった. 例えばemacsで開く設定をしたい場合は以下のコマンドで変更できる:
a=`osascript -e 'id of app "emacs"'` && \
defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=$a;}' \
'{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=$a;}' \
'{LSHandlerContentType=public.data;LSHandlerRoleAll=$a;}'
その後再起動する.
MacでのGPUの設定
GPUを使ったDNNの計算はNVIDIAのGPUが主流だがmacではNVIDIAのGPUが使えない. (会社で誰も使わず腐っていた)BlackMagic(外付けgpu)でDNNを使って遊んだのでそのメモ pythonのDNNモジュールのkerasを使う場合普通の解説ではバックエンドでtensorflowが動く. tensorflowではNVIDIAのgpuを使うが上述の通りmacではnvidiaが使えない. そこで代わりにバックエンドとしてPlaidMLを使いkerasが動く環境を構築する.
モニターとgpuをHDMIで, gpuとmacをthunderbolt3で繋げてモニターにデスクトップが表示させるか確認 (普通のgpuの使い方はここを参照 https://support.apple.com/ja-jp/HT208544 )
pythonの仮想環境を設定(しなくてもよいがしておいた方が無難)
pipでkeras, plaidml-keras, おまけでベンチマーク用plaidbenchと必要なmoduleをインストール
pip install keras plaidml-keras plaidbench
Plaidmlを設定(https://github.com/plaidml/plaidml) ターミナルで
plaidml-setup
を叩く. その後experimental dviceを使うかどうか
Using experimental devices can cause poor performance, crashes, and other nastiness. Enable experimental device support? (y,n)[n]: =の後どのgpuを使うか= Multiple devices detected (You can override by setting PLAIDML_DEVICE_IDS). Please choose a default device: 1 : metal_intel(r)_iris(tm)_plus_graphics_645.0 2 : metal_amd_radeon_pro_580.0 Default device? (1,2)[1]:
を聞かれるので, 適当に選んで( n –> 2 : metalamdradeonpro580.0とした)設定し、saveを選ぶ.
ターミナルで=
plaidbench keras mobilenet
を叩いてベンチマークする.
pythonのコードを書く時kerasをinmportするより前の方に
import os import time "KERAS_BACKEND"] = "plaidml.keras.backend" os.environ[
を追加すればバックエンドをplaidmlにしてkerasを動かすことができる.
以下の適当に拾ってきたコードが動けばOK
import os import time "KERAS_BACKEND"] = "plaidml.keras.backend" os.environ[ import numpy as np import keras import keras.applications as kapp from keras.datasets import cifar10 = cifar10.load_data() (x_train, y_train_cats), (x_test, y_test_cats) = 8 x_train = x_train[:batch_size] x_train = batch_size 7, axis=1), 7, axis=2) model = np.repeat(np.repeat(x_train, compile(optimizer='sgd', kapp.VGG19() model.='categorical_crossentropy', metrics=['accuracy']) loss print("Running initial batch (compiling tile program)") y = =x_train, batch_size=batch_size) model.predict(x # Now start the clock and run 10 batches print("Timing inference...") = time.time() for i in range(10): y = model.predict(x=x_train, start =batch_size) print("Ran in {} seconds".format(time.time() - batch_size start))
後は好きなだけDNNで遊べば良い.