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
43
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応
〜 GoogleImage2Array パッケージでの事例紹介 〜
@BioPackathon
skume
April 19, 2023
Tweet
Share
More Decks by skume
See All by skume
2025年版 最新 AIグラス製品
skume
0
12
大阪AIハッカソン フォローアップ勉強会 : Vibe Coding勉強会 Day 2
skume
0
32
大阪AIハッカソン フォローアップ勉強会 : Vibe Coding勉強会 Day 1
skume
0
32
大阪AIハッカソン2025 Day 1 発表スライド
skume
0
57
データ分析 もくもく会 @ 大阪・京橋 / 天満 2025 #9.1
skume
0
26
データ分析 もくもく会 @ 大阪・京橋 / 天満 2025 #9.2
skume
0
20
250719_もくもく会_3Dモデル生成技術の現状と将来展望
skume
0
33
250622 京橋データ分析もくもく会: Cursor x 文書作成
skume
0
66
AI-driven Development Slide created by Claude Code
skume
0
160
Other Decks in Programming
See All in Programming
gunshi
kazupon
1
140
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.3k
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
610
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
GoLab2025 Recap
kuro_kurorrr
0
2.7k
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
130
dchart: charts from deck markup
ajstarks
3
940
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
340
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
6
2k
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
1
2.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
130
The SEO Collaboration Effect
kristinabergwall1
0
320
Git: the NoSQL Database
bkeepers
PRO
432
66k
The agentic SEO stack - context over prompts
schlessera
0
580
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
67
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
270
The SEO identity crisis: Don't let AI make you average
varn
0
47
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
420
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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ポリシーに合っているかどうかが審査される。
・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる