ひろこま Hack Log

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

簡単!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

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でFlatten ほい。 fla…

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"}

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

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=@xxxx.jpg" "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key=xxxxxxxxxxxx…

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 Driveをマウントする Colab上で以下を実行。/content/driveというディレクトリにGoogle Driveがマウントされる。 !apt-get install -y -qq software-properties-common python-software-properties module-init-tools !add-apt-repository -y ppa:ale…

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

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

深層学習の「超解像」でモザイクは除去できるのか (Tensorflow + Keras)

画像出典: http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html 結論から言うと うまくいかなかった。 あくまで実験記録として記事を書くが、ここにあるコードを真似してもうまく高解像度化できないので注意していただきたい。 超解像をやってみた。 モザイク…

Falconを使い超簡単なAPIを作る 【所要時間たったの3分】

Falconとは Falcon - Bare-metal web API framework for Python Falcon を使えばRESTful な Web API をサクッと作ることができる。業務で簡単なWeb API を用意する必要があったり、ハッカソンなどの短期間開発で疎結合なアークテクチャを作らなくてはならな…

Google Colaboratory のTips集その1 (GoogleDriveマウント、セッション継続、TensorBoard接続)

Google Colaboratory、すごいです。 誰でも、Tesla K80のGPUを無料ですぐに使うことができる。Tensorflow環境もすぐに手に入れることができる。 https://colab.research.google.com/ この記事では、Google Colaboratoryを使って深層学習をまわすときのちょっ…

GPU搭載のMacBook Pro (Retina, 15-inch, Mid 2014)でCUDAを動かす

CUDA周りにはあまり詳しくないのだが、MacでCUDAを動かす方法を色々調べたのでまとめておく。 特に、「何が必要か」「今の状況をどうやって確認するか」「何をすれば動くようになるか」を一元的にまとめた記事がなかったので、それを重点的に書こうと思う。 …

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