Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
Search
skume
April 19, 2023
Programming
0
15
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応
〜 GoogleImage2Array パッケージでの事例紹介 〜
@BioPackathon
skume
April 19, 2023
Tweet
Share
More Decks by skume
See All by skume
Bio"Pack"athon 2024 #4 2024年4月版 LLM情報アップデート
skume
0
94
Bio"Pack"athon 2024 #1 2023年のLLM情報の振り返り
skume
0
82
ソフトウェア開発 × LLM 〜 Rパッケージ開発を題材に 〜
skume
0
140
deepRstudio: RStudio上でシームレス翻訳をしよう
skume
0
270
RでLangChainっぽいことを やってる話【画像生成(猫)編】
skume
0
400
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
skume
0
950
ChatGPTの現状理解と今月のLLM情報
skume
0
670
ChatGPTの現状理解と R関数&パッケージ作成への活用
skume
0
1k
IGORpro_basic_japanese_ver.1.0
skume
0
27
Other Decks in Programming
See All in Programming
AmperとFleetを使ったAndroidアプリ
yoppie
0
300
Next.js App Router
quramy
14
2.3k
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
610
Criando a Woovi em uma semana
daniloab
0
120
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.9k
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
220
The grand strategy of Ruby Parser
yui_knk
5
280
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
250
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
120
Powerfully Typed TypeScript
euxn23
3
1.6k
TSKaigi 2024 - 新サービス Progate Path の演習で TypeScript を採用して見えた教材観点からの利点と課題
makotoshimazu
1
220
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
4.4k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Adopting Sorbet at Scale
ufuk
69
8.6k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Debugging Ruby Performance
tmm1
70
11k
Web Components: a chance to create the future
zenorocha
306
41k
A Modern Web Designer's Workflow
chriscoyier
689
190k
What's new in Ruby 2.0
geeforr
338
31k
The Pragmatic Product Professional
lauravandoore
26
5.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
Rails Girls Zürich Keynote
gr2m
91
13k
Transcript
Satoshi Kume CRANパッケージの作成・投稿と コードレビュー対応 〜GoogleImage2Arrayパッケージでの事例紹介〜 211013 @ BioPackathon
今回の内容 ・ GoogleImage2Arrayパッケージの概要 ・ CRANへの投稿とコードレビュー対応 ・ RコードのTips: ・Exampleコードのラップ⽅法(donttest{} etc) ・サンプル実⾏時にローカル保存させない
・on.exit() ・ CRANでのコンパイルエラー
今回の内容 ・ GoogleImage2Arrayパッケージの概要 ・ CRANへの投稿とコードレビュー対応 ・ RコードのTips: ・Exampleコードのラップ⽅法(donttest{} etc) ・サンプル実⾏時にローカル保存させない
・on.exit() ・ CRANでのコンパイルエラー
https://cran.r-project.org/web/packages/GoogleImage2Array/index.html GoogleImage2Arrayパッケージ 主な⽤途: ・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. numeric 2D画像の扱いは、 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.R URL⽣成 + %エンコード 検索⾔語の指定 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に登録されていた。
今回の内容 ・ GoogleImage2Arrayパッケージの概要 ・ CRANへの投稿とコードレビュー対応 ・ RコードのTips: ・Exampleコードのラップ⽅法(donttest{} etc) ・サンプル実⾏時にローカル保存させない
・on.exit() ・ 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がでててもあまり気にしなくてもよそさそう。
RコードのTips: CRANでのコンパイルエラー CRANでは、毎回、コンパイル環境が違う? 1つくらいなら、Errorがでててもあまり気にしなくてもよそさそう。
まとめ ・ パッケージ作成 2⽇、投稿・レビュー・再投稿1.5⽇ => 今回、コードの下書きがあったので、 パッケージ化から3⽇程度で、CRANに採択された。 ・ コードレビューは、コードの中⾝というより CRANポリシーに合っているかどうかが審査される。
・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる