かれ4

かれこれ4個目のブログ

Cognitive Toolkit (CNTK)の 2.6 がリリースされていました。

前回のマイナーアップデート2.5.1から約5ヶ月ぶりのアップデート

CNTK_2_6_Release_Notes | Microsoft Docs

このリリースの注目ポイント☆

  • .Net Support
  • Efficient group convolution.
  • Improvement of sequential convolution.
  • More operators and improvement of existing ones.
  • ONNX feature update to support ONNX 1.2.2.
  • More ops supported by ONNX converter.
  • Bug fixes.

気になるところ

グループ化畳み込みが効率化されました

cuDNN7とMKL2017 APIを直接使用する実装に変わった事で、 パフォーマンスとモデルサイズが改善されています。 公式のページによると GPU使用時で30% CPU使用時で65-75% モデルサイズに至っては80%改善されています。 f:id:tottokug:20180928090931p:plain

Python API の引数順序変更

Times、TransposeTimes、Gemmが変更になってます。 このあたり使っている場合は注意が必要です。 グローバルオプションで指定する事で今までと同様に使う事も出来きるっぽいです。

ONNX 1.2.2 に対応

細かいのがいっぱいあります。

  • Updated CNTK's ONNX import/export to use ONNX 1.2 spec.
  • Major update to how batch and sequence axes are handled in export and import. As a result, the complex scenarios and edge cases are handled accurately.
  • Updated CNTK's ONNX BatchNormalization op export/import to latest spec.
  • Added model domain to ONNX model export.
  • Improved error reporting during import and export of ONNX models.
  • Updated DepthToSpace and SpaceToDepth ops to match ONNX spec on the permutation for how the depth dimension is placed as block dimension.
  • Added support for exporting alpha attribute in ELU ONNX op.
  • Major overhaul to Convolution and Pooling export. Unlike before, these ops do not export an explicit Pad op in any situation.
  • Major overhaul to ConvolutionTranspose export and import. Attributes such as output_shape, output_padding, and pads are fully supported.
  • Added support for CNTK's StopGradient as a no-op.
  • Added ONNX support for TopK op.
  • Added ONNX support for sequence ops: sequence.slice, sequence.first, sequence.last, sequence.reduce_sum, sequence.reduce_max, sequence.softmax. For these ops, there is no need to expand ONNX spec. CNTK ONNX exporter just builds computation equavalent graphs for these sequence ops.
  • Added full support for Softmax op.
  • Made CNTK broadcast ops compatible with ONNX specification.
  • Handle to_batch, to_sequence, unpack_batch, sequence.unpack ops in CNTK ONNX exporter.
  • ONNX tests to export ONNX test cases for other toolkits to run and to validate.
  • Fixed Hardmax/Softmax/LogSoftmax import/export.
  • Added support for Select op export.
  • Added import/export support for several trigonometric ops.
  • Updated CNTK support for ONNX MatMul op.
  • Updated CNTK support for ONNX Gemm op.
  • Updated CNTK's ONNX MeanVarianceNormalization op export/import to latest spec.
  • Updated CNTK's ONNX LayerNormalization op export/import to latest spec.
  • Updated CNTK's ONNX PRelu op export/import to latest spec.
  • Updated CNTK's ONNX Gather op export/import to latest spec.
  • Updated CNTK's ONNX ImageScaler op export/import to latest spec.
  • Updated CNTK's ONNX Reduce ops export/import to latest spec.
  • Updated CNTK's ONNX Flatten op export/import to latest spec.
  • Added CNTK support for ONNX Unsqueeze op.

【速度改善】iPhoneのSpotlight検索(Webで検索が出てくるまで)を早くする方法

Spotlight愛好家として、最近検索(Webで検索が出てくるまで)の速度が遅くなってきている事が気がかりでした。

iPhoneのSpotlightはアプリをいれると勝手に検索対象に入るらしい。 気づいたら、たくさんのアプリが検索対象に入っていて、 遅いこと、おそいこと

「設定」ー「Siriと検索」 からアプリをオフにしていくとSpotlightでの検索が爆速に

lgtm.inにアクセスするのがめんどくさいけど、単にLGTMとテキストで打つのもなんか寂しいと感じる人用のスクリプト

#!/bin/bash
figlet_font=$( which figlet | sed -e 's/bin/share/')
MAX=$(ls ${figlet_font}/*.flf | wc -l )
STOP=$( expr $RANDOM % $MAX )
i=0

for font in $(ls ${figlet_font}/*.flf );
do
  if [ $i -ge $STOP ]
  then
    figlet -f ${font%.*} LGTM
    break
  fi
  i=$(expr $i + 1 )
done

Cognitive Toolkit (CNTK)の 2.5 がリリースされていました。

リリースノートは2018/03/15に出されています。

CNTK_2_3_Release_Notes | Microsoft Docs

github.comのreleaseもだいたいそれくらいに出ています。

このリリースの注目ポイント☆

  • Better ONNX support.
  • Switching to NCCL2 for better performance in distributed training.
  • Improved C# API.
  • OpenCV is not required to install CNTK, it is only required for Tensorboard Image feature and image reader.
  • Various performance improvement.
  • Add Network Optimization API.
  • Faster Adadelta for sparse.

macOSでpython-snappyのインストールに失敗する場合の対処法

macOSpython-snappyのインストールに失敗する場合。 でsnappyを入れた後に、 CPPFLAGでincludeとlibディレクトリを指定する。

brew教の人用

brew install snappy
CPPFLAGS="-I/usr/local/include -L/usr/local/lib" pip install parquet

ports教の人用

sudo port install snappy
CPPFLAGS="-I/opt/local/include -L/opt/local/lib" pip install parquet

chsh: Macで標準以外のシェルを使おうとした時に出る non-standard shell

Macに最初から入っている下記のシェル以外をログインシェルにしようとしたら

$ chsh -s /usr/local/bin/bash
Changing shell for {USER}.
Password for {USER}:
chsh: /usr/local/bin/bash: non-standard shell

non-standard shell と言われ、変更出来ない。

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

/etc/shellsに追加してあげれば良い。

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash

/etc/shellsの末尾に追加したいシェルのパスを追加すればOK