【Python】How to swap two columns in a 2d numpy array? - 101 Numpy Exercises
Q:
変数arrのカラム0とカラム1を入れ替えなさい
arr = np.arange(9).reshape(3,3) #> array([[0, 1, 2], #> [3, 4, 5], #> [6, 7, 8]])
A:
arr = arr[:, [1, 0, 2]] #> array([[1, 0, 2], #> [4, 3, 5], #> [7, 6, 8]])
【Python】How to replace items that satisfy a condition without affecting the original array? - 101 Numpy Exercises
Q:
0~9の奇数を元の変数に影響を与えずに-1に変更する
A:
import numpy as np arr = np.arange(0, 10) arr_ = np.where(arr%2 == 1, -1, arr)
【Python】KerasでMobileNetのモデルファイルを読み込む方法
KerasでMobileNetのモデルファイルを読み込もうとすると"Unknown activation function:relu6"といったエラーが出ます。このエラーへの対処はここに書かれており、以下のようにすれば大丈夫でした。
from keras.utils.generic_utils import CustomObjectScope with CustomObjectScope({'relu6': keras.applications.mobilenet.relu6,'DepthwiseConv2D': keras.applications.mobilenet.DepthwiseConv2D}): model = load_model('weights.h5')
【ディープラーニング】マシンビジョンにおけるディープラーニングのメリット・デメリット
最近以下の本を買って読んでみたのですが、各社事例の薄い紹介に留まっており、アルゴリズム等を説明しているわけではないためエンジニアには特に有用な本でないと思いました。
- 作者: 映像情報インダストリアル
- 出版社/メーカー: 産業開発機構
- 発売日: 2017/12/06
- メディア: ムック
- この商品を含むブログを見る
そんな中でも株式会社トラスト・テクノロジーが書籍74ページ目にまとめた従来画像処理とディープラーニングの比較が、テクノロジー選定で役に立ちそうと思ったためメモします。
項目 | 従来手法 | ディープラーニング |
---|---|---|
処理アルゴリズム作成工数 | 重 | 軽 |
データ準備工数 | 軽 | 重 |
試行錯誤する項数 | 中 | 重 |
プログラミング工数 | 重 | 中 |
エンジニアスキル依存度 | 高 | 高 |
照明や背景依存度 | 高 | 中 |
環境が想定内の場合の精度 | 高 | 中 |
環境が想定外の場合の精度 | 低 | 中 |
【機械学習】「仕事ではじめる機械学習」を読んでのメモ
1章 機械学習プロジェクトのはじめ方
1.2 機械学習プロジェクトの流れ
1. 問題を定式化する * ○○のために××が必要。そのために機械学習を利用する。機械学習が○○に貢献しているかどうかの判断として、□□をKPIとする 2. 機械学習をしなくて良い方法を考える * ルールベースで期待する精度が出るのに機械学習を適用しようとしていないか * 100%の精度が得られるといった実現不可能な期待はないか *(画像処理で十分なのにCNNを適用しようとしていないか) 3. システム設計を考える * 予測結果はどういう形で利用するのか * 予測誤りをどこでどうやって吸収するのか 4. アルゴリズムの選定 * 過去に類似の問題がどのように解かれているか(Kaggle等を調べる?) * PCAやt-SNEでデータの特性を可視化してあたりをつけられないか * (問題設定が複数考えられる場合は顧客に前もって確認しておく。例えば顧客はクラス分類問題を求めているようで、実は対象の大きさも知りたいと思っており、セグメンテーション問題として扱わなければならないかもしれない。逆に顧客はセグメンテーション問題を求めているようで、実は対象の大きさは必須ではなく、ラベリング負荷が減るのであればクラス分類問題として扱っても良いかもしれない) 5. 特徴量、教師データとログの設計をする * ビジネスドメインに詳しい人に予測に必要な情報を確認する 6. 前処理をする 7. 学習・パラメータチューニング * ロジスティック回帰等シンプルなアルゴリズムをまず適用する * (学習データで精度が出ない? ⇒ モデルを大きくする、学習期間を長くする、別のモデルを試す) * (バリデーションデータで精度が出ない? ⇒ データを増やす、正則化を適用する、別のモデルを試す) 8. システムに組み込む * 予測性能とKPIをモニタリングし、継続してビジネスに貢献しているのか確認/改善を続ける * 改善を続けることが出来る組織づくりもしておく
1.4 機械学習を含めたシステムを成功させるには
機械学習を含めたプロダクトをビジネスとして成功させる上で重要になるのは以下の4者がいること
機械学習プロダクトを作っていくうえで参考になる資料
www.slideshare.netwww.slideshare.net
5章 学習のためのリソースを収集しよう
1. 公開されたデータセットやモデルを活用する * モデルやデータセットは商用利用可能なライセンスか * 学習済みモデルやデータセットを自分のドメインに適用できるか
2. 開発者自身が教師データを作る * 決めたカテゴリはそのままで良いのか、分類の定義を更新した方が良いのか考えて分類する * 他に重要そうな特徴量が判明したら、それを含めると改善する可能性がある * 分類基準は実例を残して他人に説明できるようにしておく
3. 同僚や友人などにデータ入力してもらう * 複数名で作業するとき、同一のデータに対して正解を付与してもらうことも重要。人間同士でも分類が一致しないようなタスクは機械学習では解けない問題の可能性が高い
4. クラウドソーシングを活用する メリット * 専門の作業者を雇うより作業が速く、金額も専門家への依頼より安い * 作業が速く終わるため試行錯誤しやすい * 作業コストが低いことから、複数人に同一タスクを依頼するなど冗長性を持ったデータ作成が可能
注意点 * 作業者が短時間で解けるようにする必要があり、タスクの設計が難しい * 高い専門性が求められる作業は、手順の分割、詳細化などが必要 * 作業結果の質を担保するために、結果をチェック/利用する際の工夫が必要
5. サービスに組み込み、ユーザーに入力してもらう
- 作者: 有賀康顕,中山心太,西林孝
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/01/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
【Python】 ファイルの行数を数える
データがいくつ入っているのか数えたかったのですが、以下で簡単に行数を取得できました。
num_lines = sum(1 for line in open('myfile.txt'))