2020-03-01から1ヶ月間の記事一覧

AIによる意思決定について

最近、諸事情により、引越ししたいなと考えることが増えてきました。 それではと、引っ越し先予定の土地にある賃貸を探すと100件近くでてきます。 候補を絞ると十数件くらいにはなるんですが、どれも良さそうで迷います。 いつもなら、その候補で数件選んで…

Visitのhello worldを動かしてみました(on Zybo)

Visitをインストールし、次にZyboでVisitのHello worldを動かしたので、備忘録として記載します。 参考元 Vitis + Vivado + zynq = 楽しい - Qiita Zybo Z7でしたが、Vitisで書き込むまでの手順が明記されていました。 ZYBO (Zynq) 初心者ガイド (2) Hello W…

Xilinx Vitisをインストールしました

先日、Zynq内にはFPGA部分にもARMのプロセッサが乗っていることを思い出しました笑 データシートを読んでみると、ZynqはARMだけではなく、Synopsys, Cadence, Arasanと著名なIPベンダのIPで構成されていることがわかりました。 こんなおもしろチップなのに、…

外出自粛中の秋葉原付近を散歩してきた話

本日、某業務のために偶然秋葉原に立ち寄らなければなりませんでした。 せっかく秋葉原に行くならと、コロナで外出自粛中ではありますが、一応許可されている散歩をしてきました。 そこで、いろいろな場面を見たので備忘のために記載します。 秋葉原駅付近の…

WindowsでGPU使って学習させてみた話

前回、colabがMaciに比べて早くて感動したので、GPUがすごいことにきがつきました。 なので、次に試しにWindows PCに入っているGPU(GTX 970)で試しに動かしてみることにしました。 Google colabが高速で驚いた話 - moamoa diary Tensorflow GPUのインストー…

WindowsにAnacondaを入れてjupyter labを立ち上げて、別PCからアクセスしました

何か今日は眠れなかったので、AnacoondaをWindowsにインストールして、jupyter labを立ち上げてみることにしました。 Windows PCには一応GPU(970)が入っているので、試しにぶんまわしたくなったんです笑 さすがはAnacondaですぐにセットアップできましたが、…

またまた飲みすぎて後悔した話

先日、またまた飲みすぎてしまい、 二日酔いで地獄を見ることになりました。 吐き気はするし、頭痛いしで一日中苦しかったです。 昔よりも、気のせいか二日酔いで苦しむ時間も伸びている気がします。 今回も、飲んでいる時は楽しくてついつい飲みすぎてしま…

Google colabが高速で驚いた話

先日、GANを学びたいと思い、以下チュートリアルをMacで試すことにしました。 で、 iMacだとファンが勢いよく周り6コア動作していたんですが、1epoch 240sと非常に時間がかかりました。 Deep Convolutional Generative Adversarial Network | TensorFlow Cor…

カメラから画像取得してKerasのモデルで認識した話

前回、OpenCVのdnn関数にKerasを読み込ませることができませんでした。 詰んだと思いました。 Kerasのモデル(h5)とtensorflowのモデル(pb)の変換に苦労している件 - moamoa diary ただ、ふとOpenCVのdnn関数使わなくても、そもそもデータ形式はnumpyの変換さ…

Kerasのモデル(h5)とtensorflowのモデル(pb)の変換に苦労している件

先日、kerasのモデルが作成できたので、OpenCVに読み込ませようとしました。 OpenCVではTensofrlowのpbモデルでないと適用されないようだったので、 kerasのh5モデルから変更することにしました。 いろいろ調べたところ、以下が参考になりそうでした。 で、…

Kerasで顔認識を試している話

先日、顔画像を作成することができるようにり、 kerasもインストールしたので、次に試しに以下サイトを参考に顔認識を試して見ることにしました。 KerasのCNNで、顔認識AIを作って見た〜スクレイピングからモデルまで〜 - Qiita 以下の流れで試しました。 結…

Condaでpytourch/kerasをインストールしました

先日からDeep leaningで色々試行錯誤していたのですが、そもそも主要なDeepleaningライブラリ pytourch/kerasがインストールされてなかってので入れることにしました。 少々手間取ったところあるので、備忘のために記載します。 ANACONDA NAVIGATOR/Envirome…

Anaconda/Jupyterで簡単なDeep learningを試してみました

Anaconda/Jupyterで簡単なDeep learningを試してみることにしました。 プログラムは以下を参考にしました。 コードが丸ごと用意されていてそのまま動作したので助かりました!! 参考サイト: 機械学習の要「誤差逆伝播学習法」を解説・実装してみる! – 株式会…

yolofaceで顔画像のトリミングをしてみました

前回、画像の取得ができたので、次に教師データのために画像トリミング方法を調べました。 すると、認識用のプログラムを使って、自動でトリミングして教師データとする手法が用いられていることがわかりました。 OpenCVにはhaar detectionがあるので、まず…

画像取得用のPythonスクリプトを書いてみました

OpenCVでカメラから簡単に画像を用意できることがわかったので、 機械学習の学習データを作成してみることにしました。 以下の参考元からソースコードを持ってきて、作成しました。 参考元: 機械学習で用いる顔画像データセットの一作り方(2:動画をフレー…

opencvをiMacにインストールして顔認識を試してみました

最近顔認識がしたいとふと思ったので、OpenCVをインストールして、試して見ることにしました。 GitHub - opencv/opencv: Open Source Computer Vision Library まずは、brewでopencvをインストールします。 20分くらいかかりましたが、無事にインストールで…

辛い坦々麺を食べて、夜に後悔した話

先日、神田のつじ田で、坦々麺を食べにいきました。 最近辛いものを食べておらず、また体調が良かったので、無料の辛さ最大lv4を選びました。 成都正宗担々麺 つじ田 (セイトマサムネタンタンメン ツジタ) - 小川町/担々麺 | 食べログ どん、出てきました…

チゼルの一ヶ月

建国記念日からChiselを初めて、1ヶ月が経ちました。 その間にインチキモジュールを作り続けました笑 そして、Vivadoで合成し、FPGAに乗せて動作確認をしました。 FPGAのテストするための環境も作成してみました。 1ヶ月の中で、Chiselは本当に便利で生産性…

わかりやすかったchiselの入門サイトについて

最近、chiselのことが少しわかってきたので、学びが多かったサイトをまとめます。 当たり前かもしれませんが、結局公式サイトが情報が多くわかりやすかったです。 公式サイト URL: Chisel/FIRRTL: Home チートシート URL: https://inst.eecs.berkeley.edu/~c…

Chiselで複数のパッケージを組み合わせる方法を調べました

Chiselで複数のパッケージを組み合わせ方を調べてみました。 今回はChiselのSoCプロジェクトであるrocket-chipを調べてみました。 rocket-chip/src/main/scala at master · chipsalliance/rocket-chip · GitHub モジュール種毎にディレクトリを分けることが…

RiscVの内部動作モニタに、Python cmdライブラリを使ってみました話

最近、RISCVとuartが使えるようになったので、RiscVの内部挙動を確認できるように、モニタを作ってみることにしました。 ひとまず、以下をモニタ可能にしてみました。 PCとして命令アドレス 内部レジスタダンプ で、ハード的にモニタ可能にしたあとは、ター…

Chiselで分周クロックを作って、RISCVの合成をTiming Metさせました!

先日、Vivadoで合成したら、タイミングMetしませんでした。 そのため、何らかの対策をすることが必要になりました。 それは、パイプライン設計とマルチクロックです。 thira2.hatenablog.com パイプラインは中々に手間なので、マルチクロックにしようと思い…

chiselで適当に書いたRISCVをVivadoで合成したら、Timing割れしまくって困っている話

先日、RISCVを作ったので試しにFPGAで合成してみることにしました。 LUTが5000くらいでFFが1200くらいとなかなかに小型であることはわかりました。 問題はここからで、タイミングがまったくMetしていません。 125MHzで8ns周期なのに、WNSが-5.5nsと惜しくも…

シリアル怪奇現象の正体見たり、「使用しているライブラリの仕様には注意」

先日、FPGAにシリアル接続すると、データが化けるという怪奇現象が発生することがわかりました。 thira2.hatenablog.com 原因が不明でオシロスコープやロジアナでみないといけない(持ってないですが)と思ったのですが、 識者の方からのコメントではボーレー…

Vivadoの制約ファイル(xdc)について

最近、Vivadoを触るようになってきたので備忘のために、制約をまとめていきます。 まずは最も簡単なPIN設定、クロック制約の記載例です。 とりあえず、簡単なデザインであればこれだけあればひとまず動きます笑 今回クロックは125MHzと高速に思えるのですが…

シリアルの怪奇現象を追っている話

先日、Uartの通信がPCとFPGA間でできるようになったので、 次にFPGAにChiselのMemを置いて書き込めるか確認しようとしました。 他にもGPIO設定できるものや、スイッチの設定値を読める機能もついでに追加しました。 で、テスト用のプログラムを作って、動作…

FPGAとシリアル通信しました

先日、Chiselでシリアル通信のループバックモジュールを作成しました。 Chiselでテストしようとしたのですが、1データテストするのに1分くらいかかることがわかりました。 UARTの転送bit数は8bitなので、全部テストするのに、256分くらいかかるということで…

Chiselでシリアル送信器のテストしていたら、OutOfMemoryError: Java heap spaceが発生した話

先日、chiselでシリアル受信器を作成したので、次に送信器を作ってみました。 以下のようなループバックになるようにしてみました。 シリアル受信器で受診したデータを送信器に送る。 送信器はPCに送り返す。 chiselのテストは送受信で行うので、時間として…

Vivadoを使ってChiselで作ったシリアル受信器をFPGA上で動作確認しました

先日、Uart受信器を作ったので、試しにFPGAで動かしてみることにしました。 FPGAは、大昔に購入しずっと眠っていてホコリをかぶっていた、Digilent Zybo Zynq-7000を使ってみることにしました。 以下ボードなんですが、数万ゲートは対応できそうなので、RISC…

Chiselで簡単なUART受信機を作ってみました

RISCVもできてきたので、次にRISCVに外部から接続する方法を考えてみました。 本来であればRISCVデバッガを作れば良いのですが、以前調べたところ、あまりにも難解なので、今回はskipすることにしました。 となれば、最も簡単なのはUART一択ということで、簡…