OpenCLとOpenGL
スライドはこちらにあります。
簡単にいうとスマートフォンで機械学習の推論をやるために、
内臓のGPUがどう活用するかを紹介したもの。
そのなかでこういう部分があります。
Google Pixel devices do not support OpenCL.
どうやら、OpenGLのみサポートのようです。
っということで、OpenCLとOpenGLを再度理解するためにググりました。
間違っていたら教えていただけると助かります。
一言でいうと
という感じです。
なので、OpenCLがとても幅広い領域をカバーしているのに対して
OpenGLはグラフィックに特化しているということですね。
異種混在の計算資源とは CPU(マルチコアCPU),GPUやDSPなどなどのこと。
参考
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で見かけたので、試してみた!!!
Good news! TensorBoard now works in Jupyter Notebooks, via magic commands "%" that match the command line.
— Josh Gordon (@random_forests) 2019年2月26日
Example: https://t.co/5rtcpyhXSG pic.twitter.com/SceivzfrTJ
今まで(私個人の意見です)
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に変わってた)
そして、こんな表示に。
これから(Colab上で楽々みるぞー)
これだ!!!
Graphももちろん!
ということで、やることは以下。
!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
便利!快適!
機械学習の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()
生成されたデータはこんな感じになります。
一様分布
今回は 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()
生成されたデータはこんな感じになります。
参考
情報収集と整理方法で活用しているサービス
今日はちょっと毛色を変えたやつです。
私が行っている情報収集とその整理方法について紹介です。
情報収集
主に使っているサービスは以下になります。
まぁ雑談も含めて、暇な時に眺めるくらいの気持ちで見てます。
始めた1-2年くらいはタイムラインをすべて見るみたいなことをやってましたが、最近はその時みたらって感じです。
気になったやつは「Pocket」に入れてます。
Feedly
RSSリーダーです。
情報収集といったら、主にこちらになります。
色んなブログやサイトを購読してます。
朝の日課みたいな感じで、朝みてます。
気になったやつは「Pocket」に入れてます。
Slack
会社内での使用が決まって始めたので、仕事と一部で使っている感じで情報収集という目的は薄いかもしれませんが、Kaggleなどの情報はこちらから見てたりします。
整理方法
主に使っているサービスはこちらになります。
はてなブログ
本サイトになります。
あと FC2ブログも持っています。
最近更新してないですが、用途に合わせて更新するようにします。
Revue
Revue は2018年6月ぐらいに知ってはじめてます。
Webページに対してコメント書くみたいな感じらしいです。
AI/機械学習のニュースが多く、まとめとして書いてます。
最近は 金曜日に投稿するように頑張ってます。
メールアドレス登録するとメールに配信されるぽいのですが、あまりよくわかってない
Pocketは一番使っているといっても過言ではないでしょうか。
TwitterやFeedlyで気になったやつを片っ端から Pocketに入れてます。
更に「タグ付け」ができるので、自分でタグ作って管理してます。
ざっくりは見たけど、後からちゃんと読みたい時のタグ「後で見る」
「後で読む」用の Pocketについてる「後で見る」タグ...
画面としてはこんな感じです。
今でも Pocket イチオシです!
以上です。
他にも何かあったら教えていただけるとありがたいです。