pyhaya’s diary

プログラミング、特にPythonについての記事を書きます。Djangoや機械学習などホットな話題をわかりやすく説明していきたいと思います。

Django でログインページを作る

Python のフルスタックWebフレームワークとして有名な Django を使ってログインページを簡単に作ってみます。 開発環境 準備 雛形の生成 基本的な設定 内部ページの実装 ログインページの実装 実行してみる 開発環境 Ubuntu 20.04 Python 3.8.2 Django 3.1.1…

Python から PostgreSQL を操作する

Python はデータの解析で使われることが多く、様々な記事で解析の方法や結果の可視化手法が紹介されています。多くの記事では構造化データを扱う例として CSV を pandas を使って解析していますよね。しかし、扱うデータが非常に多い場合にはデータベースを…

AtCoder Beginners Contest 128 C. Switches を解いたのでメモ

久しくブログを更新していなかった気がするので、AtCoder の過去問を解いた記録でも書いてみる。AtCoder Beginners Contest (通称 ABC) 128 の C 問題を解いてみたら再帰関数の良い練習になったのでこれを紹介します。 解答環境 解く方針 コード Step 1 Step…

Union Find 木の実装

最近 AtCoder の過去問を解いていて、Union Find 木を使うと解くことができる問題に出会いました。これまで Union Find 木は使ったことがなく、聞いたことがあるくらいだったのでこの問題を解くために勉強しました。この記事では Union Find 木がどのような…

fast.ai をサクッと動かす

機械学習のブーム到来によって、今までに様々なフレームワークが開発されてきました。有名なのは Google が開発している Tensorflow と Facebook が開発している PyTorch ですね。さらにこれらのフレームワークを手軽に試せるようなフレームワークも次々と登…

fastai の Deep Learning 本(Draft)を実行する環境をGCPでそろえる

最近、fastai が深層学習の本のドラフトを GitHub で公開して話題になりました。 github.com中身を見てみると、Jupyter Notebook 形式で書かれており、説明を読みながらその場で実行することが可能になっておりすごく便利そうです。この記事では、この良質な…

Rust で テキストファイルからデータを読み出す Python 拡張を書いたら爆速だった話

普段、実験をしていて得られるデータを np.loadtxt で読んでいるが、ためしにこの部分を Rust で書いて Python から呼び出してみたら速かったという話を書きます。 環境 準備 コード 速度比較 まとめ 最近こんな記事を書きました。 pyhaya.hatenablog.com こ…

Dell XPS 13 7390 のレビュー

XPS 13 7390 が届いたのでざっくりとレビューしてみます。外見の比較対象として今まで使っていた Dell Inspiron 13 7000 series を出しています。(2019/09/29 追記)ストレージテストと Core-i7 10510U のパフォーマンステストの結果を載せました 仕様 見た…

(速度比較) Rust でテキストファイルからデータを読み出す

Rust を使って、テキストファイルを開いて中のデータを読み出すということをやってみます。Rust では読み込み方法がいくつもあるのでそれの比較と、普段私が使っている Python の numpy.loadtxt との比較も行っていきます。 環境 読み込むデータ Rust でテキ…

Wantedlyでエンジニアインターンした話

この夏、初めてエンジニアとして就業型のインターンに参加したので感想を書いてみます。 Who am I ? なぜWantedlyでエンジニアインターンをしたのか 正式にインターンが決まるまで インターン本番 課題 ルールベースの改善 画像ベースの改善 日常生活 ランチ…

Rustで練習がてら簡単な切符の予約システムを作ってみる

最近、Rustを始めました。しばらくはドキュメントを見ながら勉強していたのですが、飽きてきて、何か作りたいなと思い始めたので、(すごく)簡単な切符の予約システムを作ってみました。まだ初心者なのでGUIで操作できたり、コマンドラインで引数を与えて実…

Tensorflowを使ってUNetを試す Version 2

UNetを構築してみようVersion 2です。 Version2? Tensorflowの変更点 モデル 訓練した結果 リンク(GitHub) Version2? 実は過去にTensorflowでUNetを書いた!という記事を書いています。。。 pyhaya.hatenablog.comなぜ同じ内容をもう一回書くのかというと、T…

TensorFlowでUNetを構築する

この記事では、Tensorflowを使ってUNetを構築し、最終的には画像から猫を認識するように訓練するやり方を紹介します。(この記事で紹介しているコードはTensorflow2系では動作しません。2系でも動くコードは別記事にしたので良かったら読んでください Tensor…

Dockerを動かしてみる

Dockerを勉強し始めたので、学習記録としてまとめておきます。内容は基本的に knowledge.sakura.ad.jp のDocker入門で勉強したものを基礎としており、自分が引っかかったとことを付け足して書いています。 環境 Dockerのインストール Dockerイメージをダウン…

ABC022-B Bumble Beeを解く

今回のエントリーはAtCoder Beginners Contestの過去問を扱います。今回扱うのは第22回のコンテストのB問題です。B問題にしては入力が大きく、計算量を意識するよい練習となります。 問題文 考察 戦略1 戦略2 解答例(C++14) 戦略1 戦略2 解答例(Python 3) 戦…

Tensorflowで犬猫画像分類する

最近Tensorflowを勉強していて、試しに定番の(?)犬猫の画像分類をしてみました。僕がやったことをまとめると CNN tf.kerasは使わない TFRecordにデータを保存してそこからデータを引っ張り出してくる もちろんBatch こんな感じのことを書きます。なのでこの…

Google Cloud Platform (GCP)を気軽に勉強する

久しぶりのエントリーです。今日はGoogle Cloud Platform (GCP)について書いてみたいと思います。 GCPというのは、Googleが提供するクラウド上のインフラサービスで、簡単なウェブサービスから、ビッグデータ解析、機械学習など幅広い用途に使えることから今…

Djangoで家計簿のWebアプリケーションを作る8 Chartjsを使ってグラフを描画する

久しぶりのエントリーです。今回は前々から言っていた、JavaScriptを用いたグラフの描画を行います。これまではPythonのMatplotlibを使ってSVG画像を作り、それをページに表示してきました。これをChartjsを使って書き直すことで、グラフ上にカーソルを移動…

「How Google Works」を読んだ

Kindleで何か面白そうな本ないかなと探していたら、「How Google Works」という本を見つけました。Googleといえば知らない人がいないほどのIT分野の巨人ですよね。Googleでは社員はどのように働いているのか、そこに興味があって購入してみました。How Googl…

AtomとVSCodeのJupyter Notebook環境を比較した

仕事でよくJupyter Notebookを使ってのデータ解析を行うのですが、最近いちいちブラウザでNotebookを起動するのが面倒になってきました。そこでエディタを使ってJupyter Notebookを使おうと思って色々調べていたら、AtomとVSCodeを使うのがどうやらよさそう…

機械学習を原理から理解する 回帰

機械学習をただ使うだけでなく、どのような原理で動いているのか理解するために数学的な観点からちゃんとアルゴリズムを見てみます。前回は線形回帰の記事を書きました。 pyhaya.hatenablog.com今回は、前回の線形回帰のアルゴリズムを拡張して、高次の回帰…

機械学習を原理から理解する 線形回帰

最近始めた機械学習の理論的な話の3つめです。相変わらず線形の話が続きます。過去記事を下に貼っておきます。pyhaya.hatenablog.com pyhaya.hatenablog.com今回は、前回までの分類アルゴリズムとは異なり、回帰アルゴリズムについて書きます。 回帰とは 線…

機械学習を原理から理解する パーセプトロン

内容的には、前回の記事の続き的な感じになります。 pyhaya.hatenablog.com今回は、二値分類をパーセプトロンを使って実装します。パーセプトロンといえば、ニューラルネットワークやディープラーニングの基本という感じの学習器です。前回に引き続き、理論…

Kaggleのタイタニックデータの解析

Kaggleの定番データセットといえば「タイタニックの生存者予測」です。今回は生存者の予測を目指して解析を行っていきたいと思います。データの可視化について詳しい説明は前回記事で書いているのでそちらを参照してください。 Titanic: Machine Learning fr…

機械学習を原理から理解する 線形分類

最近、機械学習がブームでPythonを使えばだれでも簡単に学習器を作れるようになってきましたね。Pythonはライブラリが充実しているのでモデルについて何も知らなくでも機械学習をできます。私も別に仕事で機械学習を使っているわけではないのでそのような状…

ABC012 B 入浴時間 を解いた

今回は、AtCoder Beginners Contest 012 のB問題を解きましたのでまとめておきます。この問題は特別アルゴリズム等が必要なわけではなく、難しくもないのですが、ゼロ埋めが必要で、私がこれをよく忘れるので、備忘録的な感じで書きました。 beta.atcoder.jp…

Kaggleのデータセットで遊んでみた 2 

前回の続きで、Titanicのデータセットで分析の基礎を学びます。 年齢と生存の関係を見てみる コードの説明 性別と生存率の関係 コードの説明 複数の指標を同時に比較してみる バイオリンプロット ペアプロット ヒートマップ 年齢と生存の関係を見てみる 前回…

Djangoで家計簿のWebアプリケーションを作る 7 ビューをクラスを使って整理する

Djangoで家計簿のWebアプリケーションを作っています。 ビューが汚い リファクタリング ビューの機能とは無関係の部分を抽出する ビュークラスを使う ビューが汚い ここまで様々な機能を実装してきました。その結果、views.pyの中身がだいぶ見づらくなってし…

Kaggleのデータセットで遊んでみた 1 データの可視化

Kaggleとは、機械学習とデータサイエンスのプラットフォームのことです。このサイトでは、様々なデータを使って自分で分析を行うことができたり、データ解析のコンペティションに参加して精度を競い合ったりすることができます。今回はKaggleの中で最初に出…

「テスト駆動開発」をPythonで書き直してみた 7

書籍「テスト駆動開発」をPythonで書き直したシリーズです。前回の記事はこちらです。 pyhaya.hatenablog.com今回は、いよいよ多国通貨を扱うための準備に取り掛かります。テスト駆動開発作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/…