CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @BioPackathon
Satoshi KumeCRANパッケージの作成・投稿とコードレビュー対応〜GoogleImage2Arrayパッケージでの事例紹介〜211013 @ BioPackathon
View Slide
今回の内容・ GoogleImage2Arrayパッケージの概要・ CRANへの投稿とコードレビュー対応・ RコードのTips:・Exampleコードのラップ⽅法(donttest{} etc)・サンプル実⾏時にローカル保存させない・on.exit()・ CRANでのコンパイルエラー
https://cran.r-project.org/web/packages/GoogleImage2Array/index.htmlGoogleImage2Arrayパッケージ主な⽤途:・R上で使う画像取得全般・機械学習などで使うデータGANとか分類問題とか次元圧縮とか概要:・Google画像検索の結果をRに取り込んで、4次元アレイ形式に変換する・画像の可視化・ 4次元アレイの結合 (New)
R Array (アレイ, 配列) とは??R Array/配列とは、⾏列を多次元に拡張したもの。Matrix/⾏列: 2次元のデータ構造Array/配列: 3次元、4次元、それ以上の次元のデータ構造。http://venus.ifca.unican.es/Rintro/dataStruct.html要素ex. numeric
多次元テンソルの⼤まかな考え⽅https://www.javatpoint.com/pytorch-tensors要素ex. numeric2D画像の扱いは、2D テンソル ??2D画像の扱いは、・横ピクセル数・縦ピクセル数・チャネル(RGBなど原色数)・画像の枚数
GoogleImage2ArrayパッケージでできることGoogle画像検索をすると画像のサムネイルが表⽰される検索R アレイ/テンソル(20 images/query)画像取得&変換R上での可視化(ラスター表⽰)20 images以上取得したい場合RSeleniumパッケッージを使うことに
実⾏コードアレイの取得: GoogleImage2array関数(20, 幅ピクセル数, ⾼さピクセル数, チャネル数)アレイの結合(1次元⽅向で)アレイの可視化: display.array関数
GoogleImage2array関数の中⾝をちょっと説明https://github.com/kumeS/GoogleImage2Array/blob/main/R/GoogleImage2array.RURL⽣成 + %エンコード検索⾔語の指定Webスクレイピング+ 画像URL取得画像処理、アレイへの変換などの処理と続く関数の引数wh: 縦横ピクセル数Col: カラー(T) or グレイ(F)Save: ローカル保存の有無gl: 検索エリア指定
CRANへの投稿https://cran.r-project.org/submit.html必要事項の記載gzファイルを選択ここをクリック
CRANへの投稿(準備)について、詳しくはを参照のこと
CRANから本⼈確認メールが届くココをクリック
次に、投稿完了のメールが届く
次に、CRANでのコンパイルが⾛るOKなら、レビューが始まる
約11時間後、、コードレビュー結果が返ってくるハヤっ!!WebサービスのURLを概要に⼊れてください。コメントは4点Exampleは、dontrun{}ではなく、donttest{}を使ってください。テストの途中ファイルをローカルに保存しないでください。ユーザーの設定を変えないでください。この場合、on.exit()を使ってください。
修正して再投稿 〜投稿時と同じところで〜https://cran.r-project.org/submit.htmlココにレスポンス・修正点を書く。論⽂のレスポンスレターというより、カジュアルな返事でOK!!
次の⽇にOKメールが届く同⽇中には、CRANに登録されていた。
RコードのTips: Exampleコードのラップ⽅法/例外ルールhttps://runebook.dev/ja/docs/r/library/utils/html/exampleコードが本当に実⾏できない時だけ# Not run: ⾏を追記(1)実⾏が5秒以上かかる(2)途中でデータダウンロードを実⾏する実⾏が正常かつ5秒未満なら、unwrapする結果として、サンプルコードは、donttestか、unwrapを推奨
RコードのTips: ローカル保存させないhttps://github.com/kumeS/GoogleImage2Array/blob/main/R/GoogleImage2array.Rデフォルト値が「Save=TRUE 」になっていたのを突っ込まれる。引数wh: 縦横ピクセル数Col: カラー(T) or グレイ(F)Save: ローカル保存の有無gl: 検索エリア指定どうしても保存したい場合は、tempdir()で作成される⼀時ディレクトリに出⼒するようにとのこと。
RコードのTips: on.exit()を使って、ユーザーオプション(作図の設定 etc)を元に戻すこと。http://cse.naro.affrc.go.jp/takezawa/r-tips/r/31.html
RコードのTips: CRANでのコンパイルエラーCRANでは、毎回、コンパイル環境が違う?1つくらいなら、Errorがでててもあまり気にしなくてもよそさそう。
まとめ・ パッケージ作成 2⽇、投稿・レビュー・再投稿1.5⽇=> 今回、コードの下書きがあったので、パッケージ化から3⽇程度で、CRANに採択された。・ コードレビューは、コードの中⾝というよりCRANポリシーに合っているかどうかが審査される。・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる