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
48
0
Share
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応
〜 GoogleImage2Array パッケージでの事例紹介 〜
@BioPackathon
skume
April 19, 2023
More Decks by skume
See All by skume
AI情報アップデート: Claude Coworkとは? そして、OpenClawとは?
skume
0
130
260212_データ分析もくもく会・AIxデータサイエンスコミュニティ2026
skume
0
47
2025年版 最新 AIグラス製品
skume
0
29
大阪AIハッカソン フォローアップ勉強会 : Vibe Coding勉強会 Day 2
skume
0
41
大阪AIハッカソン フォローアップ勉強会 : Vibe Coding勉強会 Day 1
skume
0
43
大阪AIハッカソン2025 Day 1 発表スライド
skume
0
74
データ分析 もくもく会 @ 大阪・京橋 / 天満 2025 #9.1
skume
0
34
データ分析 もくもく会 @ 大阪・京橋 / 天満 2025 #9.2
skume
0
34
250719_もくもく会_3Dモデル生成技術の現状と将来展望
skume
0
42
Other Decks in Programming
See All in Programming
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
280
OTP を自動で入力する裏技
megabitsenmzq
0
130
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
310
「速くなった気がする」をデータで疑う
senleaf24
0
110
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
270
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
460
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
250
How to stabilize UI tests using XCTest
akkeylab
0
150
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
190
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2.2k
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
It's Worth the Effort
3n
188
29k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
700
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
93
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
420
KATA
mclloyd
PRO
35
15k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.8k
4 Signs Your Business is Dying
shpigford
187
22k
Building AI with AI
inesmontani
PRO
1
830
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ポリシーに合っているかどうかが審査される。
・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる