Smile Engineering Blog

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

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-worktree。中でも list は使用頻度の高いコマンドですが、リスト後に cd することが多いのでこのような関数を利用しています。

初めての git-prompt

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

信号処理とMIPS・後編

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

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

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

Pythonで機械学習(kaggle入門その4)

はじめに 以前取り組んだ「House Prices: Advanced Regression Techniques」のモデルの構築、予測について、 XGBoostを試してみました。 XGBoostとは 勾配ブースティングとランダムフォレストを組み合わせたアンサンブル学習モデルのフレームワークです。 ア…

オープンソースの勉強会&イベントに参加してみよう!

突如現れたハッシュタグ #KOF2019 って一体何!?? 先週末、Twitterを何気なく覗いていると、突如『#KOF2019』などという謎のハッシュタグを見かけた方がいらっしゃるのではないでしょうか? はて、格闘ゲームのイベント!?? ……などと思われる方が圧倒的…

Marp CLI による PDF 作成

はじめに ここ最近、技術発表などのスライドは [Marp] を使って作成することが多いです。編集には Visual Studio Code の Extension([Marp for VS Code])を用いますが、commit したタイミングで PDF が自動生成されると便利なのではないかと思い、前段階と…

信号処理とMIPS

MIPS 【 Million Instructions Per Second 】 とは 信号処理や組み込みの分野では、アルゴリズムを提供するソフトウェア(ファームウェア)が、どれくらいの処理量(演算量)が必要なのか問われます。例えば、信号処理の性能を示すものには、処理された結果…

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

各工程で心がけたい思想を掘り起こしてみる 「問題解析、山積み編」です。不具合解析が1件また1件と、どんどん溜まっていくと焦りますね。たいがいそんなときは、ミスをしがちです、私は。 優先順位 システムテストチームから解析依頼がまとめて4件。焦るな…

Jupyter Notebook 便利Tips

はじめに 今回は、Jupyter Notebookの便利な機能について備忘録もかねてまとめてみます。 コード補完 ほとんどのIDEにある機能だが、変数の後の「.」で「tab」キーを押下。 関数(メソッド)の候補が表示される。