OpenCLとOpenGL

スライドはこちらにあります。

簡単にいうとスマートフォン機械学習の推論をやるために、
内臓のGPUがどう活用するかを紹介したもの。
そのなかでこういう部分があります。

Google Pixel devices do not support OpenCL.

どうやら、OpenGLのみサポートのようです。

っということで、OpenCLOpenGLを再度理解するためにググりました。
間違っていたら教えていただけると助かります。

一言でいうと

  • OpenCL
    異種混在の計算資源を利用した並列コンピューティングのためのライブラリ

  • OpenGL
    グラフィックハードウェア向けのコンピューティンググラフィックライブラリ

という感じです。
なので、OpenCLがとても幅広い領域をカバーしているのに対して
OpenGLはグラフィックに特化しているということですね。

異種混在の計算資源とは CPU(マルチコアCPU),GPUDSPなどなどのこと。

参考

UVM Cookbook released in new edition

UVM Cookbookが改版されたようです。

UVM Cookbookは Verification Academy's(旧Mentor)が運営しているところからリリースされてます。

更新内容は IEEE1800.2に沿った内容になったということで、OVMなどの内容やリンク先などが削除されているとのことです。

更新履歴抜粋

  • An additional ‘UVM Basics’ Introduction
  • A streamlined chapter on ‘Testbench Architecture’
  • Some material has been moved where more appropriate to ‘UVM Basics’
  • A rewritten and streamlined section on ‘DUT-Testbench Connections’
  • An additional chapter on ‘UVM Messaging’
  • An updated chapter on ‘Register Abstraction Layer’ in line with the 1800.2 standard
  • An updated chapter on ‘Testbench Acceleration’
  • An updated chapter on ‘UVM Connect’

TensorBoardが簡単に表示できるようになった!

今日のTwitterで見かけたので、試してみた!!!

今まで(私個人の意見です)

from matplotlib import pyplot as plt

# 精度のplot
plt.plot(history.history['accuracy'], marker='.', label='accuracy')
plt.plot(history.history['val_accuracy'], marker='.', label='val_accuracy')
plt.title('model accuracy')
plt.grid()
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.legend(loc='best')
plt.show()

# 損失のplot
plt.plot(history.history['loss'], marker='.', label='loss')
plt.plot(history.history['val_loss'], marker='.', label='val_loss')
plt.title('model loss')
plt.grid()
plt.xlabel('epoch')
plt.ylabel('loss')
plt.legend(loc='best')
plt.show()

とか書いてた。(いつの間にか acc が accuracyに変わってた)
そして、こんな表示に。 f:id:kocha2012:20190227201315p:plain

これから(Colab上で楽々みるぞー)

これだ!!! f:id:kocha2012:20190227201333p:plain

Graphももちろん! f:id:kocha2012:20190227201353p:plain

ということで、やることは以下。

!pip install -q tf-nightly-2.0-preview
# Load the TensorBoard notebook extension
%load_ext tensorboard.notebook 

からのログ出力先や、TensorBoardへのコールバック関数を用意

log_dir="logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

fit終わったら、これで起動!!!

%tensorboard --logdir logs/fit

f:id:kocha2012:20190227201333p:plain

便利!快適!

機械学習のExampleから覚えるPython(ランダム)

今までPythonを感覚的に使っていたので、改めて文法を知ろうかなと。
その際にいま流行りの機械学習(深層学習)のExampleを例にすると
わかりやすいのかなと思ったので書いてみる。

※基本的には Python3.x系のつもりで記載してます

今回は、重み(Weight)に使われているランダムについてです。
TensorFlowでは、Initilizerで指定しているものです。

Biasは初期値:0 のことが多いですが、Weightはランダムで初期化されることが多いです。

コードは Numpyで記載しますが、Python内にもramdomパッケージはあります。

正規分布

Normal(Gaussian)と呼ばれるやつです。

import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 0, 1.0 # mean and standard deviation
r = np.random.normal(mu, sigma, 2000)

count, bins, ignored = plt.hist(r, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mu)**2 / (2 * sigma**2) ), linewidth=2, color='r')
plt.show()

生成されたデータはこんな感じになります。 f:id:kocha2012:20190213073244p:plain

一様分布

今回は uniformで記載します。

import numpy as np
import matplotlib.pyplot as plt

count, bins, ignored = plt.hist(s, 15, density=True)
plt.plot(bins, (np.ones_like(bins)*0.5), linewidth=2, color='r')
plt.show()

生成されたデータはこんな感じになります。 f:id:kocha2012:20190213073304p:plain

参考

情報収集と整理方法で活用しているサービス

今日はちょっと毛色を変えたやつです。

私が行っている情報収集とその整理方法について紹介です。

情報収集

主に使っているサービスは以下になります。

Twitter

まぁ雑談も含めて、暇な時に眺めるくらいの気持ちで見てます。
始めた1-2年くらいはタイムラインをすべて見るみたいなことをやってましたが、最近はその時みたらって感じです。

気になったやつは「Pocket」に入れてます。

Feedly

RSSリーダーです。
情報収集といったら、主にこちらになります。
色んなブログやサイトを購読してます。
朝の日課みたいな感じで、朝みてます。

気になったやつは「Pocket」に入れてます。

Slack

会社内での使用が決まって始めたので、仕事と一部で使っている感じで情報収集という目的は薄いかもしれませんが、Kaggleなどの情報はこちらから見てたりします。

整理方法

主に使っているサービスはこちらになります。

はてなブログ

本サイトになります。
あと FC2ブログも持っています。
最近更新してないですが、用途に合わせて更新するようにします。

Revue

Revue は2018年6月ぐらいに知ってはじめてます。
Webページに対してコメント書くみたいな感じらしいです。
AI/機械学習のニュースが多く、まとめとして書いてます。
最近は 金曜日に投稿するように頑張ってます。

メールアドレス登録するとメールに配信されるぽいのですが、あまりよくわかってない

Pocket

Pocketは一番使っているといっても過言ではないでしょうか。

TwitterFeedlyで気になったやつを片っ端から Pocketに入れてます。
更に「タグ付け」ができるので、自分でタグ作って管理してます。
ざっくりは見たけど、後からちゃんと読みたい時のタグ「後で見る」
「後で読む」用の Pocketについてる「後で見る」タグ...

画面としてはこんな感じです。 f:id:kocha2012:20190206073144p:plain

今でも Pocket イチオシです!

以上です。
他にも何かあったら教えていただけるとありがたいです。