ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

Google mapのPlaces APIで周辺の建物を検索してみた

Google Map API Places APIとは 任意の場所の詳細情報(緯度・経度や名称、住所など)を検索できます。名称のオートコンプリートや、周辺の建物の検索なんかもできたりします。 GoogleMaps — GoogleMaps v0.11.0 Pythonで周辺建物を検索してみた 以下のpytho…

深層学習で扱うテンソルを3Dで可視化してみる

可視化されたCNNの中間層 目的 ― 可視化することでデバッグ効率を上げる 自作のニューラルネットワークモデルをデバッグしようと思ったとき、入力と出力結果だけしか見れないとブラックボックス的な解析しかできず辛いです。 中間層がどのような値を取ってい…

matplotlibで3次元配列を描画【Voxel使用】

3次元配列の描画 3次元配列を上図のように描画してみる matplotlibのvoxelという技を使います。これを使うと3次元配列(テンソル)を3D空間上に表示できます。 import colorsys import collections import numpy as np from matplotlib import pyplot as plt…

Pythonで任意の整数を色相に割り当てる

色相環 (wikipediaより引用) 色相環とは HSVカラーモデルとも言われます。赤、緑、青の色度で色を表現するRGBモデルの代わりに、色相(H)、彩度(S)、明度(V)の3値で表現するモデルです。 色相は、上手の円柱においてどの方角の色かを表します。彩度は色の鮮や…

簡単!EC-CUBE4で独自ドメインのメールをGmail経由で送る方法

EC-CUBEで独自ドメインのメールアドレスからメールを送れるようにしたいと思ったことはありませんか? この記事では、EC-CUBE4を対象に、独自ドメインのメールをGmail経由で送れるようにする方法をご説明します。 必要な費用はEC-CUBE4のサーバ台とドメイン…

htopの緑、水色、黄色、赤が表す意味

htop htopコマンドでCPUやメモリ使用量を見ることができます。その時、使用量を表すバーが緑や水色や黄色になっているのですが、これがどういう意味か調べて見ました。 以下に神回答がありました。 (adsbygoogle = window.adsbygoogle || []).push({}); serv…

【1分でわかる】ufwのルールを追加・確認・削除する方法

ファイアーウォール ルールの追加 sudo ufw allow 8080 ルールの確認 sudo ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere 18080 ALLOW Anywhere 3000 ALLOW Anywhere 8080 ALLOW Anywhere ルールの削除 ま…

【1分でわかる】Linuxに新たな秘密鍵でSSHログインする方法

SSH鍵 以下ではUbuntuを前提として話を進めます。 接続先Ubuntuに新規ユーザを作る まず、適当なアカウントで接続先Ubuntuにログインします。 新たなユーザを作るコマンドを実行します。以下、hogeという名前のユーザを作成するという体で説明します。 (adsb…

pythonのloggingでSUCCESSレベルを追加

logging Pythonでログを出力する際にloggingを使っている方は多いと思います。loggingを使えば、単にログを書き出すだけではなくINFOやDEBUG、WARNING、ERROR、CRITICALといった「重要度のレベル」を添えてログを出力することができます。 また、どの程度の…

Pythonでハイフンやマイナスなど類似文字の正規化

類似文字の文字コード 類似文字問題 ハイフンとダッシュのように、別の文字ではあるが、見た目が全く同じ文字というものが存在しています。以下がその例です。 # ハイフンに見える文字と、その文字コード - 0x2d ‑ 0x2011 ‒ 0x2012 – 0x2013 - 0xff0d ─ 0x2…

ターミナルに色がつかなくなった時の対処法

ターミナルに色がつかなくなった… ターミナルの文字に色を付ける設定は、通常、~/.bashrcの以下の行に書かれています。 以下の例は、AWS EC2のUbuntu18.04の~/.bashrcからの抜粋しました。 # uncomment for a colored prompt, if the terminal has the capab…

Docker初心者が最低限抑えておくべき10のコマンド

Docker Dockerのチュートリアル Dockerそのものの解説は以下の資料が非常にわかりやすかったです。 Dockerライフサイクルの基礎 地雷を踏み抜けろ! from Masahito Zembutsu www.slideshare.net qiita.com (adsbygoogle = window.adsbygoogle || []).push({}…

M2DetをGoogle Colaboratoryで動かしてみた

最強の物体検出器M2Detを動かしてみた M2Detとは 2019年4月現在、最強の物体検出器と呼ばれているモデルです。2017〜2018年頃にSOTAだったYOLOやSSDを引き離し高い精度を叩き出しています。 多段階特徴ピラミッドネットワーク(MLFPN)と呼ばれる方法を提案…

Google Driveから巨大ファイルをダウンロードするコマンド

サイズの大きなファイルのダウンロードには確認画面がある 機械学習モデルや、動画ファイルなどサイズの大きなファイルを、他人のGoogle Driveからダウンロードしようとしたとき、上のような確認画面に遷移します。ダウンロードボタンをクリックすれば普通に…

EC2インスタンス変更後にPostgreSQLやRailsが動かない時の対処法

AWS EC2変更後にPostgreSQLが動かない…? EC2インスタンスの変更方法 インスタンスが起動中であれば、まず停止します。 その後、「アクション」→「インスタンスの設定」→「インスタンスタイプの変更」をクリックすればOK。簡単すぎてびっくりします。 変更が…

illust2vecを使って類似イラストを検索する

類似画像検索 1. illust2vecとは 東北大学の齋藤真樹氏と東京大学の松井勇佑氏によって提案された「イラストの意味をベクトル化する」手法。 単語の意味をベクトル化するword2vecというものがありますが、それのイラスト版です。 ベクトル化することで、以下…

PythonでFlatten

PythonでFlatten Flattenとは 「入れ子になっているリスト」を「入れ子になっていないリスト」にすることです。 こんな感じです。 [1,[2,3]] → [1,2,3] [1,[2,[3]]] → [1,2,3] [1,[2,{'foo': 3}]] → [1,2,{'foo':3}] [1,[2,'foo']] → [1,2,'foo'] PythonでFl…

pythonで色付きのprintをする方法

色付きの出力をしよう ここでは、pythonで色付きの出力をする方法をご紹介します。 (adsbygoogle = window.adsbygoogle || []).push({}); 以下のような色付きprint関数cprintを作りました。 class PrintColor: END = '\033[0m' BLACK = '\033[30m' RED = '\0…

文字とUTF-8, UTF-16, SJIS, EUCの相互変換【Python】

UTF-8をはじめとする各種文字コードと実際の文字を相互変換する方法について説明します。 文字コードの対応表はこちらのサイトを参考にしました。なお、UTF-16はUTF-16ビッグエンディアンを表しています。 ash.jp (adsbygoogle = window.adsbygoogle || []).…

Pythonのリストでキューを実現する方法

画像出典:https://1000ya.isis.ne.jp/1532.html 単純な方法(appendとpop) Pythonのリストを使ってキューを実現するにはどうすれば良いでしょうか? 単純な方法として、リストのappendとpopを使う方法が考えられます。 append(x)でリストの末尾にxを追加、…

【数学パズル】末尾に同じ数が777個連続する階乗は存在するか

画像提供:https://human-illustration.com/01-emotion-picture/043-free-silhouette.html 先日、いろんな数の階乗について調べていて「とある面白い性質」に気づいたので数学の問題にしてみました。難易度的には高校数学ですが、中学生でも鋭い子なら解ける…

Watson APIで{"code":401, "error": "Unauthorized"}

Watson APIで{"code":401, "error": "Unauthorized"} エラー内容 2019年1月27日現在、Watson APIで次のようにHTTPリクエストを投げたら401エラーが返ってきます。 curl -X POST --form "images_file=@xxxx.jpg" "https://gateway.watsonplatform.net/visual-…

Watson APIでcurl: (7) Failed to connect to gateway-a.watsonplatform.net port 443: Operation timed out

Watson APIでcurl: (7) Failed to connect to gateway-a.watsonplatform.net port 443: Operation timed out エラー内容 2019年1月27日現在、Watson APIで次のようにHTTPリクエストを投げたら443エラーが返ってきます。 curl -X POST --form "images_file=@x…

GANを使って簡単に架空アイドル画像を自動生成(Progressive Growing of GANs)

Artificial Idol この記事で紹介する方法で、このような画像が作れるようになります。 (adsbygoogle = window.adsbygoogle || []).push({}); 最近趣味でやってる画像生成系のDNNについて簡単にレポートします。 1. Progressive Growing of GANsとは Paperは…

Pythonでゼロパディング (ゼロ埋め)を行う

以下の関数でOK int型であってもstr型であってもうまく動きます。 def zero_padding(num, length): num = str(num) return num.zfill(length) print( zero_padding(402, 5) ) print( zero_padding(4032, 7) ) print( zero_padding('402', 5) ) print( zero_p…

OpenCV3をインポートするときcv3ではなくcv2なのは何故?

ふと気になったので調べてみました。 こちらに答えがありました。↓ answers.opencv.org cv2はconvert toの略なんじゃないか?という意見もあるみたいですが、実際は、「2はバージョンを表しているのではなく、C APIをcvというプレフィックスで表し、C++ API…

Google ColaboratoryのCUDAを9.0にアップグレードする方法【失敗】

結論 失敗しました。CUDA9をインストールしても、Nvidiaドライバとの互換性を合わせられなかったり、pipでtensorflowをアップグレードできなかったりと、色々ハマります。Googleが公式でCUDA9をサポートしてくれるのを待つしかなさそうだという結論に至りま…

Image Inpainting(画像修復)をやってみた

画像出典: https://arxiv.org/pdf/1804.07723.pdf Image Inpaintingとは 不定形に塗りつぶされた画像を修復させるというタスクだ。NVIDAが発表した論文とデモ動画が、その精度の高さで話題となっている。 元論文 元論文はこちら。 Image Inpainting for Irre…

Google Colaboratory に大量データをアップロードする方法

Google Colaboratory に大量データをアップロードする方法 Google Driveをマウントする Colab上で以下を実行。/content/driveというディレクトリにGoogle Driveがマウントされる。 !apt-get install -y -qq software-properties-common python-software-prop…

RailsアプリをAWS EC2で公開する超簡単な手順 【独自ドメイン/HTTPS対応】

やりたいこと Railsアプリをインターネットに公開したい AWS EC2で公開したい 独自ドメインで公開したい HTTPSで公開したい 単一のEC2で複数のアプリを公開したい この記事では、独自ドメインやHTTPSにも対応した形でEC2でアプリを公開する手順を紹介する。 …

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu