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 パ...
Search
skume
April 19, 2023
Programming
0
26
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応
〜 GoogleImage2Array パッケージでの事例紹介 〜
@BioPackathon
skume
April 19, 2023
Tweet
Share
More Decks by skume
See All by skume
240807 Bio"Pack"athon 2024 #8 Replicate API とその使い方
skume
0
60
Bio"Pack"athon 2024 #6 2024年6月版 LLM情報アップデート
skume
0
66
Bio"Pack"athon 2024 #5 2024年5月版 LLM情報アップデート
skume
0
35
Bio"Pack"athon 2024 #4 2024年4月版 LLM情報アップデート
skume
0
140
Bio"Pack"athon 2024 #1 2023年のLLM情報の振り返り
skume
0
140
ソフトウェア開発 × LLM 〜 Rパッケージ開発を題材に 〜
skume
0
210
deepRstudio: RStudio上でシームレス翻訳をしよう
skume
0
360
RでLangChainっぽいことを やってる話【画像生成(猫)編】
skume
0
480
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
skume
0
1.1k
Other Decks in Programming
See All in Programming
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
210
Functional Event Sourcing using Sekiban
tomohisa
0
110
Modular Monolith Monorepo ~シンプルさを保ちながらmonorepoのメリットを最大化する~
yuisakamoto
9
1.3k
Contemporary Test Cases
maaretp
0
140
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
120
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
110
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
130
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
9
1.5k
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
610
Jakarta EE meets AI
ivargrimstad
0
830
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
230
Click-free releases & the making of a CLI app
oheyadam
2
120
Featured
See All Featured
For a Future-Friendly Web
brad_frost
175
9.4k
RailsConf 2023
tenderlove
29
910
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Invisible Side of Design
smashingmag
298
50k
Code Review Best Practice
trishagee
64
17k
Code Reviewing Like a Champion
maltzj
520
39k
Faster Mobile Websites
deanohume
305
30k
Navigating Team Friction
lara
183
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Visualization
eitanlees
145
15k
Speed Design
sergeychernyshev
25
620
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ポリシーに合っているかどうかが審査される。
・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる