Mac memo

Mac memo for myself
memo
mac
Author

Masaya Kameyama

Published

July 12, 2021

便利なアプリ

無料アプリ

  • Karabiner-Elements: キー配置やキーバインドを変更できる.

  • Amphetamine: (Caffeinの代わり) スリープ on/off

  • Sourcetree: gitのGUIアプリ, backlogとの連携はちょっとめんどくさいのでググる.

  • DBeaver: SQLを叩くためののGUI

  • QueryPie: SQLを叩くためののGUI開発終了した.

  • keybase

有料アプリ

  • Better Touch Tool トラックパッドやキーボードショートカットをカスタマイズができる.

  • Stay 外部モニターを使ったあとのアプリ配置がぐちゃぐちゃになる問題を解消してくれる.

  • intelliJ IDE: めっちゃ便利らしい. 全然便利じゃない.

PowerPoint

マスタースライドでヒラギノフォントが設定できない問題

http://btgr.hateblo.jp/entry/2016/03/22/214044

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が動く環境を構築する.

  1. モニターとgpuをHDMIで, gpuとmacをthunderbolt3で繋げてモニターにデスクトップが表示させるか確認 (普通のgpuの使い方はここを参照 https://support.apple.com/ja-jp/HT208544 )

  2. pythonの仮想環境を設定(しなくてもよいがしておいた方が無難)

  3. pipでkeras, plaidml-keras, おまけでベンチマーク用plaidbenchと必要なmoduleをインストール

    pip install keras plaidml-keras plaidbench
  4. 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を選ぶ.

  5. ターミナルで=

    plaidbench keras mobilenet

    を叩いてベンチマークする.

  6. pythonのコードを書く時kerasをinmportするより前の方に

    import os
    import time
    os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"

    を追加すればバックエンドをplaidmlにしてkerasを動かすことができる.

    以下の適当に拾ってきたコードが動けばOK

    import os
    import time
    os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
    
    import numpy as np
    import keras
    import keras.applications as kapp
    from keras.datasets import cifar10
    
    (x_train, y_train_cats), (x_test, y_test_cats) = cifar10.load_data()
    batch_size = 8 x_train = x_train[:batch_size] x_train =
    np.repeat(np.repeat(x_train, 7, axis=1), 7, axis=2) model =
    kapp.VGG19() model.compile(optimizer='sgd',
    loss='categorical_crossentropy', metrics=['accuracy'])
    
    print("Running initial batch (compiling tile program)") y =
    model.predict(x=x_train, batch_size=batch_size)
    
    # Now start the clock and run 10 batches print("Timing inference...")
    start = time.time() for i in range(10): y = model.predict(x=x_train,
    batch_size=batch_size) print("Ran in {} seconds".format(time.time() -
                                start)) 

後は好きなだけDNNで遊べば良い.

Back to top