ぱたへね!

はてなダイアリーはrustの色分けができないのでこっちに来た

TPUがサポートしていないOPをTensorboardで調べる

TPUを使うと良く謎のエラーに悩まされます。 RuntimeError: Compilation failed: Compilation failure: Detected unsupported operations when trying to compile graph cluster_666512355060360340[] on XLA_TPU_JIT: Placeholder どのoperationをTPUがサポ…

GCP, TPU, Tensorflow, Tensorboard

ローカルで動いたTensorflow環境をTPUに持って行くとすんなり動かない。動いた物を集めながら、差分を少しずつでも調べていかないと前に進まない感じがする。少しずつ環境をつくっています。やりたいことがいっぱいあるがもどかしい。 TPUを使う Kerasを使わ…

PythonとKerasによるディープラーニング

PythonとKerasによるディープラーニング PythonとKerasによるディープラーニングを読みました。Kerasの作者が書いた本だけあって、非常に分かりやすく書かれています。Kerasの楽できる関数群をフルに使って、短い記述で定番のニューラルネットワークを動かす…

TensorFlowのAPI Level

TensorFlowが良くわからないので勉強しています。 Hands-On Convolutional Neural Networks with TensorFlow を読んでいたら、TensorFlow API levelsというセクションで、High-Level TensorFlow API、Mid-level TensorFlow API, Low-Level TensorFlow APIと…

2018年の思い出

2018年を振り返ってみた。 Coursera 有名どころのCourseraのマシンラーニングコースを終えた。 https://www.coursera.org/learn/machine-learning 人生を少し変えたコースです。このコースの知識でなんとかデータサイエンティストとしての一歩を踏み出しまし…

GCPでTPUを動かしたメモ

GCPでTPU動いたのでメモ 準備 ここ読みながらTPUを起動する。ctpu upの前に、ブラウザのコンソールからSTARTさせないと動かなかった。(TPUにチェックを入れて緑色になっただけだと動いていなかった。) https://cloud.google.com/tpu/docs/quickstart?hl=ja…

rustで細かいプログラムを一つのディレクトリに入れる

なんかタイトル何ってるかわかりにくいです。 rustでプログラムを作るときは、cargo newコマンドを使います。ただ、ちょっとしたプログラムを作る度にcargo newするのも面倒ですよね。ディレクトリもどんどん増えますし。本で勉強していて、練習問題がでてき…

The RISC-V Reader: An Open Architecture Atlas

パターソン先生の動画を見て、これは読まねばならぬと思い読んでみました。 https://www.amazon.com/RISC-V-Reader-Open-Architecture-Atlas/dp/0999249118/ Amazon.co.jpでは取り扱ってないけど、.comでは普通に買えます。不当に高いのをつかまないように。…

GCPでTPUを使えるようにする

GCPでTPUを使いたくて試行錯誤した途中経過です。 コンソールからの登録 GCPコンソールの左上からTPUを登録しようとしても、なかなか上手く行かず挫折。 結局 ip address rangeに何を入れて良いのか分かりませんでした。 ctpuコマンドを使う ctpuコマンドをC…

京都Devかふぇ#4 〜レガシーシステム考古学〜

京都Devかふぇ#4 〜レガシーシステム考古学〜にLT参加してきました。 僕の発表資料です。 Kyoto dev caffe from Natsutani Minoru どの人の発表もすごく面白かったです。 レガシーコードとの戦いの軌跡 レガシーから脱出するために、レビューにきっちりと時…

Rustの配列操作メモ

Rust Standard Library Cookbook から、気になった配列の操作をメモしました。 要素の取りだし 配列の要素を取り出すにはgetを使います。Option型で返ってくるので、Someかunwrapでその値を取り出せます。[ ]でも同じ動きです。 [ ]を使って配列の領域外にア…

組合せ最適化アルゴリズムの最新手法―基礎から工学応用まで

組合せ最適化アルゴリズムの最新手法―基礎から工学応用までを読みました。 80年代後半、90年代の論文がよく出てきており、20年前の最先端をまとめた本です。題材に半導体関連のネタが多く、興味を持って最後まで読めました。シミュレーティド・アニーリング…

RustでSimulated Annealing

本棚を見たら組合せ最適化アルゴリズムの最新手法―基礎から工学応用までという本を見つけました。Simulated Annealingのアルゴリズムが載っていたので、せっかくだからRustで実装してみました。 問題 この図の回路を2つのエリアにわける方法を考えます。簡単…

rustでマクロ

rust standard library cookbookから。 マクロを使って、簡単な可変長引数を実現する例。 macro_rules! multiply { ( $last:expr ) => { $last }; ( $head:expr, $($tail:expr), + ) => { $head * multiply!($($tail), +) }; } fn main() { let val1 = multi…

Rustでグラフ

ほとんどライブラリの使い方レベルだけど、なんとか動いた。 extern crate petgraph; use std::fs; use std::io::Write; // https://docs.rs/petgraph/0.4.13/petgraph/ use petgraph::Graph; use petgraph::algo; use petgraph::dot::Dot; fn main() { let …

久しぶりにKerasを動かしたときのメモ

import keras しただけでこういうエラーがでる。 ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory libcublasが見つからないだけなので、.bashrcにLD_LIBRARY_PATHを追加する。 export LD_LIBRARY_PATH=$LD_LIBRA…

TVMで使われている最適化の探索手法

TVMとは ペーパーはこちらからダウンロードできます。 https://arxiv.org/abs/1802.04799 TVMは、ASICやAPGAの様な組込様CPU等、様々なバックエンドでDeep Learningを動かすことを目的としたコンパイラです。 グラフレベルや演算子レベルの様々な最適化を行…

Rustで文字列の連結

Rust Standard Library Cookbookを読み始めました。 Amazon CAPTCHA この本ではRustの文字列連結として3つの方法が紹介されています。 moveによる連結 一番標準の方法。わかりやすく効率も良いが、連結後はmoveによりhelloは使えなくなる。 fn by_moving() …

GCPUG in Osaka #8【GCP】〜 Google TPU Day 〜

マーチンのおっかけで、GCPUGへ参加してきました。 https://gcpug-osaka.connpass.com/event/100106/ Tensorflow and modern convnets グーグル Martin Görner さん・吉川さん Google martinによる。最新のコンボリューションネットワークの紹介。CNNの基本…

DevFest Kyoto 2018 & TPU

日曜日にDevFest Kyotoに参加してTPUの情報を集めてきました。 https://gdgkyoto.connpass.com/event/99527/Twitterでは見たことがあるこの図を生で見れたのが良かったです。 TPUで使用されているbfloatフォーマットについて。 よく見ると、指数部を増やして…

TFUG KANSAI Meetup 2018

今回は急な開催となり告知期間が短い中、57名の方に参加していただきました。 平日の微妙な天気の中、ご参加いただきありがとうございました。さくらインターネット様には素敵な会場提供だけでなく、講演者へのお声がけや、懇親会の費用も負担していただき実…

rustを使ってonnxを読み込んでみた

https://cipepser.hatenablog.com/entry/protobuf-read-in-rust を参考にrustを使ってonnxを読み込んでみました。 Cargo.toml protobufを使えるようにする。 [dependencies] protobuf = { version = "~2.0", features = ["with-bytes"] } onnxフォーマットの…

らすと

ここってRustのハイライトできんの? >|rust| use std::collections::HashSet; type Pi = Vec<u32>; fn calc_k(pi:&Pi, i:u32, n:u32) -> u32 { // pi(i) + 1 .. n let g0: HashSet<u32> = (pi[i as usize - 1] + 1.. n + 2).collect(); // pi(1) .. pi(i-1) let g1: H</u32></u32>…

[rust][離散最適化] パス列挙アルゴリズム

組込Deep Learningで、量子化された状態での学習というのは離散最適化問題なのでは?と思い立ち組合せ最適化 第2版を読み始めました。最初のアルゴリズムとして、パス列挙アルゴリズム(path enumeration algorithm)が載っていたので、これまた勉強を始めたRu…

なにわTECH道×TFUG KANSAI Deep Learning フェス2018

土曜日に行われたなにわTECH道×TFUG KANSAI Deep Learning フェス2018のレポートです。今回は発表も無く、当日の僕の役割は司会者の近くに座って何かあったらサポートするというポジションだったので、集中して発表内容を聞くことができました。当日は公演中…

戦略的データサイエンス入門

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニックを読みました。 どんな本 タイトルにあるようにビジネス側からのデータサイエンスについて書かれた本です。データサイエンスの本は、ともするとアルゴリズムから手法を分類しがちですが…

Writing Compilers and Interpreters まとめ

Writing Compilers and Interpreters A Software Engineering Approach 3rd Editionを5月から読んでました。なかなか面白い本なので紹介します。コンパイラの勉強というとどうしてもパーサーで挫折してしまいがちです。この本は、まずはフロントエンドと、中…

オンライン機械学習

機械学習プロフェッショナルシリーズのオンライン機械学習を読みました。タイトルはオンライン機械学習となっていますが、機械学習の基本的な学習アルゴリズムについて説明されている本です。特にオンラインでしか通用しない話だけでなく、半分くらいは基本…

[compiler]Writing Compilers and Interpreters: その13手強かった11章が終了。 12章 Interpreting Pascal Programsへ

Writing Compilers and Interpreters: その12

定数宣言のパースができるようになった。こういう定数の宣言をパースしてクロスリファレンスをかえると、 CONST epsilon = 10; limit = -epsilon; BEGIN END.こんな感じで、integerということとその値が表示されるところまで来た。 ***Definition.PROGRAM du…