Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Amazon Honeycodeを使ってみた(その2)

Amazon Honeycodeを使ってみた(その1) の続きで今回はアプリ作成画面を見ていきます。

PyTorchモデルをバイナリストリーム化してモデル解剖もしてみよう

PyTorchのモデルをバイナリストリームで保存できる!? 最近PyTorchのドキュメントを眺めていたら、PyTorchのモデルがio.BytesIOで保存できることを知りました。 (以前からこんな記載あったかな? あまり記憶にない……) # Save to io.BytesIO buffer buffer…

GitHub の Verified マーク

はじめに GitHub にて、Web ブラウザ上でプルリクエストをマージした際に Verified マークが付いていることに気づきました。自分のコミットも Verified されたい!という事で、備忘のため手順を残しておきます。

PCMにWAVヘッダを付ける

WAVヘッダを付けると便利 WAVヘッダのテンプレート リニアPCM16ビット、サンプリング周波数16kHz(モノラル)のWAVヘッダ WAVヘッダを取得するAPI 使い方 ファイルサイズを求めるAPI サンプルコード Audacityでファイル読み込み 最後に WAVヘッダを付けると…

思考のサルベージ(その9)

各工程で心がけたい思想を掘り起こしてみる 以前「ハードウェアインターフェース」について考えてみました。今回も詳細設計・実装におけるHWの利用方法について考えてみます。 事前実験 2BYETデータA[可変]、4BYTEデータB[可変]を連結する。 2BYTEのチェック…

Linux Mint 20 Ulyana 初期セットアップ手順

6月27日に「Linux Mint」の最新メジャーリリースとなるバージョン20(開発コード「Ulyana」)がリリースされました。 「Linux Mint」はUbuntuベースのデスクトップ型Linuxディストリビューションのひとつです。 私はVMware上に「Linux Mint」をセットアップ…

Amazon Honeycodeを使ってみた(その1)

はじめに コードをまったく書かずにウェブ・モバイルアプリを構築することができるという「Amazon Honeycode」のベータ版が公開されました。 どんなものなのか興味があり、無料で試せるということで少し触ってみようと思います。

PyTorchで学ぶ『平均』と『分散』と『BatchNormalization』

ところでBatchNormalizationってなんだっけ? 深層学習でモデル構築をしていると、よくお見かけするのがBatchNormalizationと呼ばれるもの。 ・・・はい。よく見かけますよね? ・・・・・・・・・。 ところで、結局それってなんでしたっけ? 「平均を0、分…

GitHub Wiki でのファイル添付

はじめに みんな大好き GitHub。issue や PR に補足資料としてパワポやエクセルのファイル、イメージを張り付けるなんてことは良くやります。この場合、Edit 欄にファイルを Drag & Drop するだけで自動的にアップロードしてリンク作成されるのですが、同じ…

FIRフィルタを作って周波数特性を検証

適応フィルタを作ってみる では、サンプルコードを紹介しましたが、実際に動かしてみたいと思います。そこで適応フィルタの前に、まずはシンプルに固定フィルタを検証してみます。 FIRフィルタ サンプルコード 検証用のコード サンプルコード フィルタスルー…

The Continuing Story of Error Correction Code 3

ハミング距離 カルノー図 カルノー図は論理式を簡略化するためなどに使用する図です。 このような論理式の簡略化を図から容易に行うことができます。 が、ここでは論理式は扱いません。ハミング距離の理解のためだけにカルノー図を使います。 ハミング距離の…

思考のサルベージ(その8)

各工程で心がけたい思想を掘り起こしてみる 今回は、設計工程における「過剰設計」について考えてみます。対向装置の挙動が不透明な状態で設計をすすめると、「過剰設計」になることがあります。「過剰設計」とその弊害とは一体何でしょうか。 準正常系の設…

PySpark環境構築メモ

はじめに ローカル(Windows10)上でApache Spark(PySpark)を試してみたかったので、環境構築手順を備忘録として記載します。

GoでGoな非同期処理を試してみよう!

非同期処理、皆さんどうコードを書いてますか? 少し前のこと。弊社の若手(?)の方が、『非同期処理めんどくさい!』みたいなことを騒いでいたのですが、そもそも皆さんどうやって非同期処理のソースコードを書いているのだろう?とふと思ったわけです。そ…

Rustで設定ファイルを複数読み込む

Rustでの標準的・簡易的な設定ファイルの実装方法と問題点 開発したソフトの実行環境が変わるたびにコーディング・コンパイルをしなおすことのないよう、設定情報をソースコードとは別ファイルにしたり、実行時のOSの環境変数から取得したりする設計は常套手…

PlantUML の Illegal reflective access 問題

はじめに 近ごろ [PlantUML] で記述されたテキストに遭遇することが増えてきました。メインのテキストエディタとなりつつある VSCode に [PlantUML extension] をインストールしてみたところ、、

The Continuing Story of Error Correction Code 2

単一パリティ符号とハミング符号 お約束 これからエラー検出・訂正について考えていく訳ですがエラー検出・訂正をするからには何か入力があって、それをどこかに送るなり保存するなりして、受け取った、あるいは読みだしたら間違えているかもしれないからエ…

適応フィルタを作ってみる

信号処理の分野では、適応フィルタが色々な目的で使用されています。ちょっとした理由で適応フィルタのプログラムを作ってみました。 ADF【Adaptive Filter】 適応フィルタの構成 適応アルゴリズム サンプルコード:NLMSで作ってみる FIRフィルタ サンプルコ…

思考のサルベージ(その7)

各工程で心がけたい思想を掘り起こしてみる システムテスト工程末期、客先リリース直前での不具合修正と性能変化ついて考えます。 ちょっとした判定ミス SWの動作としてはよくあるやつで、メインループで、実行命令を受信し、命令内容に従いHWを設定して後は…

PyTorchで京大BERT日本語Pretrainedモデルを使ってみよう

自然言語処理で注目を集めるBERT Googleによって提案されたBERTは、自然言語処理のあらゆる分野へ流用が可能で、ますます注目を集めています。自然言語処理を学んでる方でしたら、一度は触ってみたいですよね! 今日は京大から公開されている、 PyTorch & BE…

Cannot set LC_XXX to default locale: No such file or directory

はじめに ことあるたびに目にする、 Cannot set LC_ALL to default locale: No such file or directory のメッセージ。検索率の高いエラーメッセージなので、回避策?をここに記す。

MIPSとMCPS(?)、100MIPSは100MHzで動くか?

信号処理とMISP(前編・後編)では、ソフトウェアのベンチマークとしてMIPS【Million Instructions Per Second 】が使われることについて書いてきました。 前編(信号処理とMIPS - Smile Engineering Blog) 後編(信号処理とMIPS・後編 - Smile Engineering…

The Continuing Story of Error Correction Code

はじめに 最近、思うところがありエラー検出・訂正を勉強しています。 ネットの情報や書籍を頼りにやっていますが本格的なところは、行列だ、ベクトルだ、線形代数だ、巡回符号がどうのこうので多項式がなんとかで、挙句の果てはガロアなんとかだ、ときて心…

思考のサルベージ(その6)

各工程で心がけたい思想を掘り起こしてみる 「単体テスト」について考えてみましょう。各工程のなかでは割と地味な作業ですが、この作業に割り当てられる時間は全体スケジュールに大きく響いてきます。 いつやるの? V字モデルに従えば、 機能設計 詳細設計 …

Dask備忘録

はじめに 今回は、Daskを触ってみたので使い方を備忘録もかねてまとめてみます。 Daskとは Pythonでデータ分析や機械学習をする際によく利用するライブラリがPandasですが、 Pandasで大容量データを処理すると、 データがメモリに収まらない 基本的に単一ス…

PyTorch超入門!

PyTorchを始めてみよう! 普段、TensorFlowで深層学習のソースを書いてた私……のはずなのですが、いろいろあってPyTorchを勉強する羽目(?)になってしまいました。が、 そもそもPyTorchなんてこれまでまったく触ったことないよ〜!! これではあかん!!と…

git worktree list を少しだけ使いやすく

Git

はじめに みんな大好き git-worktree。中でも list は使用頻度の高いコマンドですが、リスト後に cd することが多いのでこのような関数を利用しています。

初めての git-prompt

Git

はじめに git-worktree で複数のブランチを渡り歩いていると、今どこのブランチにいるのか?どんな状態なのか?がわからなくなることが多々あります。 プロンプトにブランチ名、状態を色で表現させる方法をご紹介します。git-prompt.sh のコメントの他、下記…

信号処理とMIPS・後編

ソフトウェアとMIPS 前編(信号処理とMIPS - Smile Engineering Blog)は、ハードウェアの性能を示すMIPS【Million Instructions Per Second 】について書きましたが、今回はソフトウェアのベンチマークとして書きたいと思います。 MIPS コンピューターの処…

思考のサルベージ(その5)

各工程で心がけたい思想を掘り起こしてみる 「ハードウェアインターフェースの確認」を取り上げましょう。 組み込み開発では、ハードウェアもオリジナルというのが普通ですね。ソフトウェア開発側の視点でハードウェア機能の確認について考えてみます。 どん…