2020-01-01から1年間の記事一覧

AWS SAMとCloudFormationで同じ構成のAPI Gateway + Lambdaを構築

AWS

API Gateway + Lambdaの同じ構成をSAMとCloudFormationの2通りで作成しました。 SAMのほうが簡単に作成できるのですが、細かい設定が中途半端に隠蔽されている感じが好きではないです。 CloudFormationのほうがテンプレートが長いのですが、細かい設定ができ…

JavaScript AWS SDKでS3にある画像をブラウザに表示

AWS

JavaScriptのAWS SDKを使って、S3にある画像ファイルをブラウザから直接取得して表示してみました。 前提 S3バケットのCORS設定 ソースコード index.html lib.js 実行 前提 S3バケットに画像ファイルが保存されています。 S3バケットはパブリックアクセスを…

AtCoder参戦日記 ABC179 2020/09/19 #3 ― 茶色になる

AtCoderの3回目の参加となった2020/09/19のABC179の記録です。 1回目参加の記事 (3完: Scala, Scala, Java) 2回目参加の記事 (5完: Python, Scala, Scala, C++, Scala) 3完でした。4問目と5問目は、どちらもコードを書きましたが、時間内に正答に至りません…

MNISTのニューラルネットワークでの学習の隠れ層のニューロン数と精度の関係

前回の記事に続いて、今回は隠れ層のニューロンの数と精度の関係を見てみました。 size hidden_size process_time train_loss train_accuracy test_loss test_accuracy 60000 [8] 29.06 0.2370 0.9328 0.2473 0.9296 60000 [64] 44.79 0.0208 0.9942 0.0928 …

AtCoder参戦日記 ABC178 2020/09/13 #2 ― 奇跡的な好成績

AtCoderの2回目の参加となった2020/09/13のABC178の記録です。約1ヶ月前のことです。 初参加の記事 5問目まで解法を偶然すぐに思いつくことができましたので、奇跡的に成績がよかった回となりました。 正答を出せた5問で使った言語はPython、Scala、Scala、C…

sedコマンドでディレクトリ内の全ファイルをテキスト全置換するには

単一ファイルを置換する場合 バックアップを残したい場合 ディレクトリ内の全ファイルを置換したい場合 findコマンドとxargsコマンドを併用 grepコマンドも併用 全置換が怖いからバックアップを残したい sedのバックアップオプション ディレクトリごとバック…

Google Cloud DataflowをPythonで動かしてみる

GCP

前回のGoogle Cloud DataflowをJavaで動かしてみるに続き、次はPythonで試しました。 前提 チュートリアルに従ってGCPプロジェクトでAPI有効化されていること GCPの中のCompute Engineのインスタンスで作業 Pythonインストール済み (3.8.1で作業しました) Py…

Ubuntu 20.04にC#をインストールしてAWS SDKを使ってみる

AWS

C#をほとんど触ったことがないので、手元のUbuntu 20.04に入れてHelloWorldを書きました。そしてC#のAWS SDKをインストールしてAWSのAPIにアクセスしてみました。 環境はUbuntu 20.04です。 C#のインストール C#のHelloWorld C# AWS SDKのインストール C#か…

Google Cloud DataflowをJavaで動かしてみる

GCP

Google Cloud Dataflowを試してみるべく、GCP公式サイトにあるチュートリアルをやりました。 Java と Apache Maven を使用したクイックスタート | Cloud Dataflow | Google Cloud このチュートリアルでダウンロードできるJavaのソースコードはファイル数が多…

fluent-plugin-s3のhex_randomはリトライしても値が変わらない

AWS

fluentdでS3に出力させるにはS3のキーがユニークになるようにする必要がある。ランダム値を使い、重複時はリトライをさせればユニークになるだろうと思ったが、hex_randomはリトライをしても値が変わらないので、ダメだった、という話。 time_sliceの時間内…

AtCoder参戦日記 ABC177 2020/08/29 #1 ― 初参加

8月終わりごろからAtCoderに参加しています。参加の記録を残しておこうと思い、この記事は初参加となった2020/08/29のABC177の記録です。 参加当日は、ペナルティのルールをよくわかっていなくて、C問題で適当に提出しすぎて、大量のペナルティで損をしまし…

MNISTのニューラルネットワークでの学習の教師データ数と精度の関係

MNISTには全部で6万個の訓練用データがありますが、単純なニューラルネットワークで学習させたときの訓練用データの数と学習結果の精度の関係を見てみました。 size process_time train_loss train_accuracy test_loss test_accuracy 60000 76.70 0.0051 0.9…

正規分布の母分散をTensorFlowを使って最尤推定で数値計算してみる

正規分布に従う標本から母集団の分散を最尤推定で計算してみました。最尤推定での計算はTensorFlowで勾配降下法を使いました。 最尤推定で計算した分散は不偏分散ではなく標本の分散と一致することが確認できました。 手順 正規分布に従う乱数を100個作成 そ…

fluentdでS3にJSONLでアップロード

AWS

fluentdでログをS3にJSONL(JSON Lines)でアップロードするところまでを試しました。 前提 fluentdはインストール済み credentialsファイルなどでfluentd動作環境からS3アクセスする権限がある プラグインインストール fluentdのS3プラグインを別途インストー…

手書き数字(MNIST)をTensorFlowの単純なニューラルネットワークで判別

TensorFlowのディープラーニングの練習として、手書き数字(MNIST)をTensorFlowの単純なニューラルネットワークで判別させました。 Google Colaboratoryで実行しました。 TensorFlowのバージョンは2.3.0です。 !pip list | grep tensorflow tensorflow 2.3.0 …

TensorFlowのOptimizerを自作する

TensorFlowのOptimizerを自分で独自に実装することができるようなので、実装してみたソースコードをメモとして残しておきます。以下の私の記事で使ったアルゴリズムを実装してみました。これで自分のアルゴリズムをTensorFlowで動かせます。 勾配降下法の自…

Raspberry Piにキーボード・マウス・モニタなしでOSセットアップ

ちょっとやりたいことを思いついてRaspberry Piをセットアップしました。Raspberry Piを触るのは、たぶんですが2016年2月ごろ以来です。 キーボード・マウス・外部モニタのないRaspberry PiにOSをインストールしてSSH接続できるまでを設定します。 OSイメー…

PostgreSQLの各テーブルのレコード数とデータ容量の概数を調べるには

PostgreSQLのレコード数を見るには SELECT COUNT(*) ... すればわかりますが、大きいテーブルですと時間がかかります。またディスク上のデータサイズはこれではわかりません。概数でいいので、レコード数とデータサイズを見るにはどうしたらよいか? システ…

金星・水星の最大光度のタイミングの違いを解く

この記事は、数ヶ月前にニューラルネットワークをScalaでゼロから書いてたときに勾配降下法の応用としてやっていた内容です。 金星・水星の光度変化を数式で表現し、その最大値のタイミングを調べました。最大値は勾配降下法を使わなくても解けそうですが、…

正規分布に従っているが平均と分散が不明のn個の標本があるときのn+1個目の標本の分布

正規分布に従っているが平均と分散が不明の、サイズが の標本があるとき、同じ正規分布の 個目のサンプルの分布を調べる。 乱数を使ってシミュレーションして分布を調べた結果、「対応のない2群のt検定」で計算するt分布と一致していることが確認できたので…

p値が同じでも分布によって確率密度関数の値はぜんぜん違う

p値が同じでも分布によって確率密度関数の値はぜんぜん違うことの確認です。違うのは当たり前ですが、こんなに大きく違うとは思ってませんでした。 以下の実行例はPythonのインタプリタです。 ↓確率密度関数と累積分布関数を計算するためのインポート。 >>> …

AWS CloudWatch Logsでロググループが存在するかどうかをスクリプトで判定

AWS

AWS CloudWatch Logsでロググループが存在するかどうかで、スクリプトを分岐させたいとする。(ロググループが存在しなければロググループを作成というようなケース) aws logs describe-log-groups コマンドでその名前のロググループを取得して、存在を判定…

TensorFlowの自動微分を使って勾配降下法を試してみる

TensorFlowの自動微分を使ってみるために前回の記事(勾配降下法の自作アルゴリズム)に書いたアルゴリズムをTensorFlowで書きました。 の最小値となる 、 を求めることにします。 この関数はxyの座標でいうと、原点を中心に半径1の円から少し左にずれた環状が…

t分布の確率密度関数・累積分布関数のグラフをPythonで描く

確率密度関数のグラフ。 import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt x = np.linspace(-5, +5, 101) y1 = stats.t.pdf(x, 1) y2 = stats.t.pdf(x, 2) y3 = stats.t.pdf(x, 4) y4 = stats.norm.pdf(x) plt.plot(x, y1) …

PostgreSQLとAWS Glue Crawlerの日時のデータ型

AWS

PostgreSQLの日時のデータ型 timestamp と timestamp with timezone (timestamptz) をAWS Glue Crawlerでクロールするとデータカタログに登録されるテーブルのデータ型が何になるかを調べました。 PostgreSQLにサンプルテーブル作成 Glue CrawlerからはJDBC…

Perl / PowerShell / JavaScriptのワンライナーでどこでもパスワードを生成

Perl Powershell Powershell on shell JavaScript Perl Linuxの環境があればPerlは入ってる確率が高いので、Perlのワンライナーです。 $ perl -e '@c = (0x21..0x7E); print chr($c[rand @c]) for 1..32; print "\n"' 記号の種類を制限したければ、 $ perl -…

Linuxのバージョン確認方法 (CentOS / Ubuntu)

CentOSとUbuntuでのディストリビューションのバージョンの確認方法のメモです。毎回ググってしまうので。 CentOS /etc/os-release /etc/redhat-release unameコマンド Ubuntu /etc/os-release /etc/lsb-release unameコマンド unameコマンドについてのメモ …

Vue.jsでページ中の複数の要素をクラスで指定してVueインスタンスを生成するには

Vue.js を試してみました。JavaScriptのフレームワークの中でもアプリ全体のフレームワークとしてではなく、jQueryのようにパーツとして使うこともできるので、簡単に試せます。インストール不要で、HTMLにVue.jsをCDNから読み込むscriptタグを書くだけです…

産業への応用 - G検定の勉強ノート

G検定 2020#2 受験時の勉強ノートの全部で5ページのうちの5ページ目です。 勉強ノート 人工知能の一般知識 機械学習の一般知識 ディープラーニングの基本 ディープラーニングの応用 産業への応用 合格体験記 G検定に合格しました ※ノートを書く過程で覚えた…

BigQueryの2種類のSQLをbqコマンドでクエリ実行

GCP

BigQueryは2種類のSQLがあります。 レガシーSQL (legacy SQL) 標準SQL (standard SQL) SQL 言語の切り替え (Switching SQL dialects) | BigQuery | Google Cloud レガシーSQL (legacy SQL) $ bq query 'SELECT * FROM [bigquery-public-data:covid19_open_da…