EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

読書メモ: Effective Python

目次

  • 目次
  • はじめ
  • PEP8スタイルガイドに従う
  • シーケンスをどのようにスライスするか知っておく
  • 大きな内包表記にはジェネレータ式を考える
  • try/except/else/finallyの各ブロックを活用する
    • finallyブロック
    • elseブロック
  • Noneを返すよりは例外を選ぶ
  • リストを返さずにジェネレータを返すことを考える
  • 可変長位置引数を使って、見た目をすっきりさせる
  • 辞書やタプルで記録管理するよりもヘルパークラスを使う
  • プライベート属性よりはパブリック属性が望ましい
  • ローカルタイムクロックにはtimeではなくdatetimeを使う
    • timeモジュールについて
    • datetimeモジュールについて
  • 全ての関数、クラス、モジュールについてドキュメンテーション文字列を書く
    • モジュールのドキュメンテーション
    • クラスのドキュメンテーション
    • 関数のドキュメンテーション
  • 最適化の前にプロファイル

はじめ

Pythonコードのより良い書き方を学ぶための技術書として有名なEffective Pythonを友人から借りることが出来たので読んでみました。
今回の記事は、この書籍を読んで参考になった事のメモになります。

続きを読む

自動運転技術を手掛ける企業の技術動向: RADAR編

  • 背景・目的
  • 自動運転におけるRADARの役割
  • 大手企業の動向
  • 自動運転向けシミュレータの開発
  • RADAR開発に取り組む未上場の現存企業
  • Lunewave
  • Echodyne
  • Arbe Robotics
  • Metawave
  • Oculii

背景・目的

先日リリースされた下記の記事を読んだことで、車の自動運転というものは様々な技術が組み合わさる事で実現される、また各カテゴリにおいて、その技術を手掛ける様々なスタートアップ企業が存在する、ということを改めて実感しました。

www.nikkei.com

f:id:sy4310:20181127220257p:plain

ここで紹介されている各スタートアップ企業の取り組みにどういう特徴があるのか詳しく知りたくなってきたので、今回から複数回に分けて各企業の特徴を調査してメモしていこうと思います。今回はRADAR編となります。

続きを読む

PythonからC言語の関数を呼び出してユニットテストする環境を作る: Cython編

目次

  • 目次
  • はじめに
  • Cythonとは
  • PythonとC言語を組み合わせるメリット
  • 参考記事
  • ステップ1: C言語のコードを書く
  • ステップ2: C言語のコードをラッピングするCythonコードを書く
  • ステップ3: Cythonコードをビルドするsetup.pyを書く
  • ステップ4: コンパイル・ビルドする
  • ビルドする際のハマりポイント
  • ステップ5: ユニットテストのPythonコードを書く
  • 今後の課題

はじめに

自分は普段の仕事でC言語のプログラムを実装するのがメインです。しかしながら、今の職場にて自分が実装したC言語のソフトをデバッグするためには、実際のコントローラに書き込んでからベンチシミュレータで動かす、くらいしか方法がありません。
いちいちコントローラに書き込んだりするのが面倒だし、コントローラ内部でステップ実行なんて事もできないので、開発用PCの中である程度のデバッグを行う方法はないか、と考えていたところで思いついたのが、PythonからC言語のプログラムを呼び出してデバッグするというものでした。
今回は、数あるやり方の一つであるCythonを使ったやり方を試してみたので、その流れや注意点について書こうと思います。

続きを読む

機械学習に必要な数学の基本についての勉強メモ: 行列編

目次

  • 目次
  • はじめに
  • 行列とは
  • Pythonにおける行列の定義
  • 行列の積
  • 単位行列
  • 逆行列
  • 3×3行列の逆行列を求める
  • 転置
  • 行列と写像
  • 次回の内容

はじめに

以前、機械学習に必要な数学について学んでいくにあたり、下記の記事を書きました。

www.eureka-moments-blog.com

今回はその続きとして、行列についての基本を勉強したので、そのメモを記事にします。

続きを読む

Visual Studio Codeによるソフトウェア開発環境構築のメモ

目次

  • 目次
  • はじめ
  • VS Codeのインストール
  • Gitのインストール
  • Gitの初期設定
  • VS Code上で開く統合ターミナルをGit bashにする
  • VS Codeの拡張機能を自動でインストールする
  • 事前準備1. インストールしたい拡張機能のリストファイルを作る
  • 事前準備2. 自動インストールを実行するシェルスクリプトを書く
  • ユーザ設定を共有できるようにする
  • 番外: 便利だけどよく忘れるVS Codeのコマンドメモ
  • 表示しているファイル内のシンボルの一覧を表示する
  • シンボル名で検索する
  • 元いた場所に戻る

はじめ

自宅のPCでも職場のPCでも、ソフトウェア開発環境としてVisual Studio Code(以下VS Code)を導入しているのですが、どちらも同じ設定で統一したかったり、何かのタイミングでPC交換となり環境構築をし直したくなった際は、出来るだけ効率的に作業を完了させたくなります。
今回の記事は、VS Codeの環境構築の作業手順とTipsのメモです。

続きを読む

機械学習に必要な数学の基本についての勉強メモ: ベクトルと微分編

目次

  • 目次
  • はじめに
  • Pythonで縦ベクトルを表す
  • ベクトルの足し算、引き算の図形的な解釈
  • ベクトルの内積
  • Pythonでのベクトルの大きさの計算
  • ベクトルの内積を和の記号を使って表す
  • 積の記号
  • 機械学習における微分の在り方
  • 入れ子の関数の微分
  • 機械学習における偏微分の在り方
  • 傾きをベクトルとして解釈する
  • 勾配を図で表す
  • 多変数の入れ子関数の微分
  • 和と微分の交換

はじめに

機械学習、深層学習を学ぶ上で、数学の知識は絶対に必要だと思います。自分も最近になって機械学習、深層学習について本格的に勉強を開始しましたが、まず最初に感じたのは数学の基本をいろいろと忘れているな、という事です。そんな時に上記の技術書を見つけたので、これを利用してPythonでのプログラミングを交えながら数学の基本について学び直し、その中から重要だと思った部分やサンプルコードをこの記事にメモしていこうと思います。

続きを読む

Google翻訳のAPIで4ヶ国語対応の翻訳アプリを作ってみた

  • 背景・目的
  • 全体ソースコード
  • Google翻訳APIのインストール
  • APIをインストールする際の注意点
  • 必要なモジュールのインポート
  • 文字化けするときの対処法
  • 翻訳させたいフレーズの入力
  • 翻訳処理
  • 実行結果の例
  • 次の取り組み

背景・目的

プログラミングもしながら語学も学ぶ方法はないかと考えた結果、最初に思いついたのは翻訳アプリを自作してみる事でした。といっても翻訳自体はGoogle翻訳のAPIを利用しているので結構簡単にできました。ただ、作る中でいくつかハマった事があったので、その辺の対処方法にも触れながら今回作った翻訳アプリを紹介しようと思います。

AI時代の翻訳に役立つGoogle活用テクニック

AI時代の翻訳に役立つGoogle活用テクニック

続きを読む