kivantium活動日記

プログラムを使っていろいろやります

FlaskでWebSocketを使う

WebSocketを使うとリアルタイム性の高いWebアプリケーションを作ることができます。今回はFlaskでWebSocketを使うライブラリのFlask-SocketIOを使って、複数のブラウザでテキストボックスを同期するアプリを作成します。 インストール Flask-SocketIOはpipで…

Twitterのハッシュタグを正しく抽出する

ここ一年くらいかけて暇な時間にTwitterに投稿されたイラストを収集するにじさーちというサイトを開発しています。 にじさーちにはハッシュタグを使って画像を検索する機能があるのですが、ハッシュタグに中黒(・)が含まれる場合にうまく抽出できないバグ…

OpenAI Gym Roboticsの環境構築とBaselinesの実行

OpenAIが提供している強化学習環境のGymを使って、OpenAI BaselinesのHER (Hindsight Experience Replay) を実行するまでの手順について記録しておきます。環境構築はUbuntu 20.04で行いました。 MuJoCoのライセンス取得 Gymで提供されている環境のうち、3D…

Thinkpad X13 Gen1 (AMD) を買った

年末セールで Thinkpad X13 Gen1 (AMD) を買いました。 こんなんでいいかな pic.twitter.com/iGqnJddayi— きばん (@kivantium) 2020年12月26日 (このツイートの後で自分が学生であることを思い出して学割ストアで買ったので、最終的には164,934円でした) R…

RISC-Vクロスコンパイラで生成したバイナリを自作RISC-V上で実行する

4連休の課題としてFPGAで簡単なCPUを作っているので、その進捗を記録しておきます。 RISC-V (RV32I) の作成 とりあえず今回は確実に動くCPUを作ることを目標にしました。 パイプラインなどは実装せず、フェッチ→デコード→実行→メモリ・アクセス→書き戻しの5…

自動微分ライブラリJAXを用いた対称行列の固有値の微分

JAXという自動微分ライブラリが流行りそうな機運があるので遊んでみます。 github.com インストール READMEに書いてある通りにやりました。 pip install --upgrade pip pip install --upgrade jax jaxlib 基本的な使い方 The Autodiff Cookbook — JAX docume…

Django ChannelsでWebsocket通信を行ってVue.jsで表示する

前回の続きです。 kivantium.hateblo.jp サーバー上で重たい処理をする場合、処理が全て終わってからHTMLを生成しているとかなりレスポンスが悪くなってしまいます。先に結果表示ページのHTMLを表示しておいて、中身を後からWebsocketで順次通信するといい感…

Django ChennelsアプリをNginxとSupervisorでデプロイする

DjangoでWebsocketを使うときにはChannelsというライブラリがよく使われています。これまではHerokuにデプロイをしてきましたが、HerokuとChannelsの相性が良くないのかすぐに接続が切れてしまうので、これからはAWS上で開発しようと思いました。公式ドキュ…

化合物でもDeep Learningがしたい!

この記事は2017年12月15日に https://kivantium.net/deep-for-chem/ に投稿したものです。 情報が古くなっていますが、まだ参照されているようなので再掲します。 この記事はDeep Learningやっていき Advent Calendar 2017の15日目です。 Deep Learningの威…

PyTorchでファインチューニングしたモデルをONNXで利用する

昨日の作業の結果、Illustration2Vecのモデルが大きすぎて貧弱なサーバーでは使えないことが分かりました。今のところ二次元画像判別器の特徴量抽出にしか使っていないので、もっと軽いモデルでも代用できるはずです。軽いモデルとして有名なSqueezenetをこ…

タイムラインから二次元イラストだけを表示するWebアプリの作成

DjangoでTwitter認証を行う - kivantium活動日記 二次元画像判別器に対するActive Learning導入の検討 - kivantium活動日記 ここまでの成果を使って、タイムラインから二次元イラストだけを表示するTwitterクライアントっぽいWebアプリを作成します。 スクリ…

二次元画像判別器に対するActive Learning導入の検討

前回の記事では、Twitter上の画像から二次元画像を選ぼうとすると二次元とも三次元とも言い難い画像が入ってくる問題があることを見ました。今回は、Active Learningという方法を使って境界領域の画像をうまく扱う方法を適用したいと思います。 Active Learn…

二次元画像判別器の作成に関する基礎検討

Abstract Twitterに流れる大量の画像の中から二次元画像を集めることは私のQoL向上の上で非常に重要な問題である。 本研究では、著者のタイムラインに実際に流れてきた画像を分析し、二次元画像分類という問題の定義が難しいことを示した。 また、独自に定義…

Bulmaで画像の中央を丸く切り取って並べる

「Bootstrapを使って作ったWebサイトはいかにもBootstrapを使って作った感が出てしまうからやめたい」とWebのプロに相談したらBulmaを使うといいと言われたので、最近はBulmaを使っています。 bulma.io 画像の中央を丸く切り取って並べるデザインをする必要…

TwitterのStreaming APIについて

2018年8月にTwitterのUser Streams APIが廃止されてしまい、タイムラインのツイートをリアルタイムで取得することができなくなってしまいました。 forest.watch.impress.co.jp それに伴い、User Streams APIを使っていたリプライによるアイコン変更スクリプ…

Tweepyで画像を収集する (WIP)

機械学習をするためにはデータが必要なので、頑張って集める必要があります。 とりあえずTweepyで取れるだけ取る方法をいろいろ考えていきます。 Cursorを使う Tweepyが標準で用意しているCursorというクラスを使ってタイムラインからRate Limitの許す限り画…

Illustration2VecをONNX経由で使う

趣味プロジェクトでIllustration2Vecを使いたくなったのですが、これは2015年の論文なのでモデルをCaffeかChainerで使うことになっています。 github.com 残念ながらCaffeもChainerも既に開発が終了しているため、Illustration2VecのモデルをONNXという共通…

DjangoでTwitter認証を行う

前回の記事のつづきです。 kivantium.hateblo.jp 今回はTwitterでのOAuth認証を実装して、タイムラインを読み込むところまで進めます。 ライブラリのインストール 認証に必要なsocial-auth-app-djangoというライブラリをインストールします。前回作ったプロ…

DjangoアプリをHerokuにデプロイする

インターンを始めたら労働のつらさを思い出しました。 最近毎日なんか売れそうなWebサービス作れないかな〜って考えてる— きばん卿 (@kivantium) 2020年4月8日 というわけで、Webサービスの作り方を勉強していきたいと思います。 WebサービスといえばRuby on…

NWChemをコンパイルして動かす

なにも分からない。 NWChemは計算化学ソフトで、GSoCのOpenChemistryに参加していたので動かしてみたかった。 とりあえず動いた方法 環境はUbuntu 18.04。 ドキュメントのCompiling NWChemにあるNWChem 6.6 on Ubuntu 14.04 (Trusty Tahr)の項目を見ればいい…

閉殻Hartree-Fock法によるHeH+のエネルギー計算

量子化学計算を勉強するために新しい量子化学―電子構造の理論入門〈上〉を読んでいます。 サンプルコードがFortranだったので勉強がてらC言語に移植しました。新しい量子化学―電子構造の理論入門〈上〉作者:Attila Szabo,Neil S. Ostlund出版社/メーカー: 東…

Docker上で開発を行う

ライブラリの開発をするときに、現在のバージョンと開発中のバージョンの性能比較をすることがあります。同じ名前のライブラリが1つの環境に複数存在すると面倒なことになるのでDockerを使って環境を分けることにしました。そのときに使ったコマンドについて…

Vue.jsとFlaskの間でフォーム情報をやり取りする

Pythonで作ったプログラムにWebインターフェースをつけることができると便利です。 せっかくなのでフロントエンドも勉強しようと思って見た目簡単そうなVue.jsを試しました。 ソースコード バックエンド (Python) Pythonのシンプルなウェブアプリケーション…

C/C++でのメモリリーク検出方法 〜AddressSanitizer, Valgrind, mtrace〜

C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです…

制約付き最適化問題をD-Waveと同じ方法で解く

まだ古典コンピュータで消耗してるの? イジングモデルとQUBO D-Waveが提供しているのは量子アニーリングを使った量子コンピュータです。 量子アニーリング方式では次の形の最適化問題を高速に解くことができます。 ここで、です。1と-1よりは0と1の方が扱い…

Open Babelのビルドとインストール

Open Babel は化学で使われる分子フォーマット間の変換によく使われるソフトです。 開発されたばかりの機能を使うためには自分でビルドしてインストールする必要があるのですが、Pythonバインディングをコンパイルするところにハマったのでメモしておきます…

RustによるNelder-Mead法の実装

Rustの練習その2としてNelder-Nead法を実装しました。Nelder-Mead法のアルゴリズムには様々な変種がありますが、ここでは以下の本に書いてあるものを使いました。Derivative-Free and Blackbox Optimization (Springer Series in Operations Research and Fi…

Rustによるニュートン法の実装と可視化

Rustの勉強として、1変数関数の簡単なニュートン法を実装してgnuplotによる可視化を行いました。 可視化ライブラリ GitHub - SiegeLord/RustGnuplot: A Rust library for drawing plots, powered by Gnuplot.[Rust plot]で検索して一番上に出てきたこれを使…

階層ベイズモデルを用いた労働時間と知的好奇心の関係分析

以前@berobero11さんに「StanとRでベイズ統計モデリング」をプレゼントしていただき、本を読んだのですが解析したいデータがなかったため勉強した結果を活かすことができずにいました。しかし今日Twitterを見ていたら長時間労働は,知的好奇心を枯らすのか。…

ポアソン画像合成 revisited

2014年の記事で何回かポアソン画像合成をやりましたが、どれもうまくいきませんでした。kivantium.hateblo.jp kivantium.hateblo.jp授業の課題でポアソン画像合成を書いたので供養としてソースコードを上げておきます。 前回との差分は勾配ベースの画像編集:…

広告コーナー