こちらのデータセットを解凍するときに7zipを解凍する必要があったのでメモ。
PubMed 200k RCT dataset
解凍
$ brew install p7zip $ 7z e compressed_file.7z
圧縮
$ 7z e compressed_file.7z row_file.txt
こちらのデータセットを解凍するときに7zipを解凍する必要があったのでメモ。
PubMed 200k RCT dataset
$ brew install p7zip $ 7z e compressed_file.7z
$ 7z e compressed_file.7z row_file.txt
キーボードのリマッピングをしてくれるツールです。
自分のブログでもこの回で紹介しています。
hiramekun.hatenablog.com
ところが、先日HHKB Pro JPキーボードを買って設定したところ、以下のキーが押しても反応しなくなりました。
専用ドライバのアンインストール、Karabiner Elementsのアンインストールなど試しましたが一向に状況は改善されず、泣く泣くKarabinerを使うことを諦めようと思った時でした。
同じ悩みを持った人のissueをKarabiner Elementsで発見!
For HHKB Professional JP keyboard, "right-cmd" and "lang" keys are not detected
この画像のようにSimple Modificationを設定したところ、めでたく上の3つのキーを認識してくれるようになりました。
SSD, YOLO, Faster R-CNN等、物体検出のディープラーニングアルゴリズムは多々ありますが、それらの多くが学習時に「imagenetの重みで初期化→PASCAL VOCのデータセットで学習」という流れを踏んでいます。
PASCAL VOCは、The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Development Kitに各アノテーションの説明が書いてあります。
アノテーションはxmlファイル形式で、以下にその一部を挙げます。これは鳥が表示されている画像ですね。
大事なのは、どこに何が位置しているのかをきちんと説明できるフォーマットになっているところです。
<annotation> <folder>VOC2007</folder> <filename>000040.jpg</filename> <source> <database>The VOC2007 Database</database> <annotation>PASCAL VOC2007</annotation> <image>flickr</image> <flickrid>97167996</flickrid> </source> <owner> <flickrid>ResQgeek</flickrid> <name>?</name> </owner> <size> <width>500</width> <height>332</height> <depth>3</depth> </size> <segmented>0</segmented> <object> <name>bird</name> <pose>Right</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>1</xmin> <ymin>52</ymin> <xmax>384</xmax> <ymax>290</ymax> </bndbox> </object> </annotation>
VOCのデータセットにクラスがあればいいのですが、必ずしもあるとは限りません。
例えば、トラの物体検出を行いたいと考えた時に、トラのデータセットは存在していません。
その時は、自分で画像に対してbounding boxを作って1画像に対して1つのxmlファイルを作成しなければなりません。そのツールとして「物体検出用の画像アノテーション正解データ作成に便利なツール」で取り上げられていたものが見つかりました。
tzutalin/labelImg
手動で囲った結果を自動的にPASCAL VOCと同じ形式のxmlファイルとして出力、保存してくれます。
インストールですが、前述のサイトの通りに行ってもうまくいきませんでした。
$ brew install qt $ brew install pyqt $ make qt4py2 make: *** No rule to make target `qt4py2'. Stop.
こちらのissue(Installation in macOS SIerra: No rule to make target qt4py2
. Stop.)と同様のエラーが出てmakeできません。pythonのversionやqtのversionを変更していじってみましたが、同様のエラーが出ます。
時間を取られすぎていたので、下のこちらの方が提示してくれているパッケージをインストールし、アプリとして使いました。
jiyeqian/labelImg labelImg_qt5py3_mac_latest
エラーが出ている理由をきちんと突き止めてはいない(3/18現在、githubのissueもopenのままです)ので、わかりしたいアップデートしたいと思います。
データを処理するときに、やろうと思えばfinderから確認したり、エクセルで開いたりすることはできます。ですが、非常にファイルが大きくなり数GB程度にもなると、GUIで確認するのは非常に困難です。
実際に自分も1GB程度のデータが書き込まれたcsvファイルをエクセルで開こうとしましたが、エクセルがカクカクしてろくに作業することもできませんでした。
そう言った意味でも、CUIからデータを閲覧、操作できるようにしておきましょう。
①現在の文字コードを調べる
env | grep LANG
で、現在の環境を読み込み、その中からgrepコマンドで文字コード設定のもののみを抽出します。
②nkfコマンドを使う
ここで、別ファイルに書き出す理由は、データ加工を間違えたときに元データからやり直せるようにするためです。
①データを取得する
curl -s http://hoge > hoge.json
と打って、APIからデータをダウンロードしてきます。
②ファイルを確認する
jsonファイルを取得したとします。jqコマンド(別途ダウンロードが必要です)を使うと、jsonファイルが見やすくなります。
# 例)hoge.jsonファイルを、色付きで行番号もつけて閲覧 $ json . hoge.json -C | less -NR
③データの加工
# 例)1行目から26行目まで削除する。 $ sed -e '1, 26d' hoge.csv > hoge_deleted.csv
# 特定の条件を満たした対象に対して処理ができる。 $ awk -F 区切り文字 '条件 {実行文}' ファイル名'
こちらの本を参考にしました。
データサイエンティスト養成読本 登竜門編 (Software Design plus)
端末多重化ソフトウェアと呼ばれます。pc内に仮想端末を立ち上げることができます。
機械学習をサーバーで走らせる時などは必須で、「sshログイン→tmux立ち上げる→学習走らせる→sshログアウト」としても、サーバー上で立ち上げた仮想端末が動き続けているので学習が止まることはありません。のちにログインしてもう一度その仮想端末にアタッチすることで、以前アタッチした時の状態の端末に入ることができます。
こちらの記事のtmuxとはという項目がとても参考になりました。
tmuxを使い始めたので基本的な機能の使い方とかを整理してみた
# tmux新規セッション開始 $ tmux # セッション名の名前のついたtmuxの仮想端末を新しく立ち上げます。 $ tmux new -s [セッション名] # セッション一覧表示 $ tmux ls # セッションを再開する $ tmux a # セッションを名前をつけて再開する $ tmux a -t [セッション名]
デフォルトはctrl + b
で、これを押した後に入力することで以下の操作が可能になります。
# セッションからデタッチ d # 横にペイン分割 % # 縦にペイン分割 " # ペイン間の移動 o # ペインの破棄 x # ペインの入れ替え ctrl + o # コピーモードに入る(履歴を遡ることができるようになります。) [
この本は、(若干タイトルで釣ろうとしている感が否めませんが)遺伝の影響について事前知識のない人にもわかりやすく説明されています。
以下はAmazonに載っていた概要です。知能への遺伝のきよは日本では若干タブー視されているかと思いますが、その話題を中心として取り上げていることがわかりますね。
- いま注目の「行動遺伝学」からわかってきた、遺伝と環境、才能と努力、本当の関係!
- 教育学では、遺伝と学力の関係を無視してきたが、「知能指数は80%遺伝」という衝撃をどう捉えればいいか? 身長や体重など身体的な特徴だけではなく、IQや性格への遺伝的影響も大きいことがわかってきた。ならば、勉強することには意味がないのか? しかし、遺伝的なものが自発的に発現するとは限らず、教育環境も重要である。
筆者の安藤寿康さんは、行動遺伝学の第一人者として紹介されています。
人間のほとんど全ての心理的側面には遺伝が無視することのできない大きな影響を与えている。
そもそも知能とは、「問題解決能力」「観察した事柄から法則性を抽出し、それを別の事柄に適用する論理的な能力」などと説明されている。
知能には、2つの大きな立場がある。
あくまでも、どんな能力も社会的に認知されて初めて「能力」として定義される。
実験方法は、
遺伝子が100%同じ一卵性双生児と50%類似している二卵性双生児。同じ環境で育った一卵性双生児と二卵性双生児の類似性を比べて、もし一卵性双生児の方が似ているのであれば、それは遺伝の影響によるものだと考えられる。
青年期のIQの個人差は、遺伝54%、共有環境19%、非共有環境27%によって作られている。
何が共有環境として働き、何が非共有環境として働くのかは、状況によって異なる。一見同じ場に居合わせて同じものを見ていても、違った意味づけをしているかもしれない。
知能や性格、そして様々な分野における才能についても、遺伝は大きな影響を与えています。
親の特徴がそのまま子供に受け継がれるわけではない。
能力は平等に配分されているわけではなく、各々が到達できるレベルには限界があるとされています。
どの領域でどの程度のレベルに行けるかどうかが、各人の遺伝的な素養のよって、ある程度規定されている
遺伝と学力については自分の興味分野でしたので、スイスイ読み進めることができました。学力の経済学と読み比べるのもいいかもしれません。
遺伝ってこんなに作用しているんだという驚きと、その遺伝を見つけ出す為にも様々な経験をして遺伝的素養を発現させるのが大切だという筆者の言葉はとても納得のいくものになりました。
anacondaをインストールして、fish shellで仮想環境を立ち上げようと、source activate env
をしました。
すると、次のようなエラーが、、、
>> source activate chainercv source: Error encountered while sourcing file 'activate': source: No such file or directory
config.fishに次の一行を追加して解決しました。
source (conda info --root)/etc/fish/conf.d/conda.fish
次に、configファイルを読み込み直します。
source ~/.config/fish/config.fish
すると、activateコマンドを使って仮想環境を立ち上げることができました。
[/Users/hiramekun] >> activate chainercv [/Users/hiramekun] (chainercv) >>