SlideShare una empresa de Scribd logo
1 de 18
How to make gem
ライブラリの作り方
最初に必要なもの
 Ruby
$ ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.0]

 gem (Ruby標準添付)
$ gem -v
2.1.11

 bundler
$ gem install bundler
$ bundle –v
Bundler version 1.5.2

 Git
$ git –-version
git version 1.8.3.4 (Apple Git-47)
Gemの主要ファイル構成
Path

Description

bin

実行可能ファイル配置パス
ここに配置されたファイルが実行ファイルとして配置される

lib

このディレクトリが$(Rubyライブラリの探索パス)に追加される
sample
(ライブラリ名)

sample.rb
spec

lib/sample.rbからrequireするファイル群を配置

require “sample”でロードされるファイル

version.rb

バージョンを記載するファイル

テスト用のを格納するディレクトリ(RSpecの場合)
spec_helper.rb

Rspecの共通設定を定義するファイル

Gemfile

bundlerで依存解決を解決する為の設定ファイル

Rakefile

rakeタスクの定義ファイル

sample.gemspec

ライブラリのメタデータや設定を定義するファイル
ひな形の作成
以下のコマンドでライブラリのひな形を作成
$ bundle gem sample
create sample/Gemfile
create sample/Rakefile
create sample/LICENSE.txt
create sample/README.md
create sample/.gitignore
create sample/sample.gemspec
create sample/lib/sample.rb
create sample/lib/sample/version.rb
gemspecの編集1
ライブラリのメタデータを入力する。(以下はsample.gemspecの一部)
Gem::Specification.new do |spec|
spec.name
= "sample"
spec.version
= Sample::VERSION
spec.authors
= ["i2bskn"]
spec.email
= ["i2bskn@gmail.com"]
spec.summary
= %q{Sample library}
spec.description = %q{Gem for first time.}
spec.homepage
= "https://github.com/i2bskn/sample"
spec.license
= "MIT”
# snip
end
gemspecの編集2
ライブラリの設定を入力する。(以下はsample.gemspecの一部)
今回は変更しない。
Gem::Specification.new do |spec|
# snip
spec.files
= `git ls-files -z`.split("x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
# snip
end





files : 全てのファイルの配列。
executables : 実行ファイル名の配列。bin以外の場所に配置する場合は変更。
test_files : テスト用ファイルの配列。test,spec,features以外に配置する場合は変更
require_paths : $:(Rubyのライブラリ探索パス)に追加するディレクトリ。
gemspecの編集3
ライブラリの依存関係にRSpecを追加する。(以下はsample.gemspecの一部)
RSpec以外も必要な場合は適宜追加する。
Gem::Specification.new do |spec|
# snip
spec.add_development_dependency "bundler", "~> 1.3"
spec.add_development_dependency "rake"
spec.add_development_dependency "rspec"
end

 add_dependency “ライブラリ名” : 実行時に必要な依存関係の定義。
 add_development_dependency “ライブラリ名” : 開発時に必要な依存関係の定義。
依存ライブラリのインストール
ライブラリのルートディレクトリに移動して以下のコマンドを実行する。
$ bundle install --path .bundle





.bundleというディレクトリが作成される。
.bundle/configはbundleの設定ファイルで2回目以降はオプションの指定が不要。
.bundle/rubyに依存関係のライブラリがインストールされる。
.bundle/rubyにインストールされたライブラリは他のシステムに影響を与えない。

.bundle/rubyにインストールされたライブラリのコマンドはbundle execを付け
る事で実行する事が可能。(rspecは例)
$ bundle exec rspec
テストコードの作成1
テスト用ディレクトリとspec_helper.rbの作成
$ mkdir -p spec/sample
$ touch spec/spec_helper.rb

spec_helper.rbのコードを記述する。
require “sample”
RSpec.configure do |config|
config.order “random”
end
テストコードの作成2
テストコードの作成
$ touch spec/sample/foo_spec.rb

ここではRSpecの解説は省きます。
require "sample"

describe Sample::Foo do
describe "#greet" do
it "returns greeting message" do
expect(Sample::Foo.new.greet).to eq("Hello World")
end
end
end
Rakefileの編集
Rakefileにテストを実行するタスクを定義してデフォルトタスクにする。
require "bundler/gem_tasks"
require "rspec/core/rake_task"
desc "Run all specs"
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = ["-c", "-fs"]
end
task :default => :spec
テストの実行
テストを実行してみる。
$ bundle exec rake spec
/path/to/ruby -S rspec ./spec/sample/foo_spec.rb -c –fs
/path/to/sample/spec/sample/foo_spec.rb:3:in `<top (required)>': uninitialized constant
Sample::Foo (NameError)

Sample::Fooクラスが定義されていない為、NameErrorがthrowされる。
rakeタスクでなくrspecコマンドでも実行可能。
$ bundle exec rspec
/Users/iiboshiken/work/sample/spec/sample/foo_spec.rb:3:in `<top (required)>':
uninitialized constant Sample::Foo (NameError)
ライブラリの実装
Sample::Fooクラスの作成。
$ touch lib/sample/foo.rb
module Sample
class Foo
def greet
"Hello World"
end
end
end

Sample::Fooクラスをsample.rbからrequireする。(以下はlib/sample.rb)
require "sample/version"
require "sample/foo"
テストの再実行
テストを再度実行する。
$ bundle exec rake spec
/path/to/ruby -S rspec ./spec/sample/foo_spec.rb -c -fs
Sample::Foo
#greet
returns greeting message
Finished in 0.00252 seconds
1 example, 0 failures

「1 example, 0 failures」なのでテスト成功。
実行ファイルの追加
binディレクトリとコマンドの作成
$ mkdir bin
$ touch bin/sample
$ chmod 755 bin/sample

コマンドを実装。
#!/usr/bin/env ruby
require "sample"
puts Sample::Foo.new.greet

今回は実行ファイルのテストは書かないが、実際はテストした方が良い。
Commitとビルド
ひと通り実装したのでコミットしておく。
リモートリポジトリが無い場合はpushしなくてもよい。
$ git add --all
$ git commit -m “first commit”
$ git push -u origin master

ビルドしてインストールする。
$ bundle exec rake build
$ bundle exec rake install

グローバルにインストールする場合はgemコマンドを使う。
$ bundle exec rake build
$ cd pkg
$ gem install -l sample
コマンドの実行
 インストールしていない場合
$ ruby -I lib bin/sample
Hello World

 rake installした場合
$ bundle exec sample
Hello World

 gem install -l sampleした場合
$ sample
Hello World
Fin

Más contenido relacionado

La actualidad más candente

PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールMasahiko Sawada
 
R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール弘毅 露崎
 
データベースのお話
データベースのお話データベースのお話
データベースのお話Hidekazu Tanaka
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介Kodai Terashima
 
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4ichikaway
 
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料Chika SATO
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Daisuke Ikeda
 
ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成Naoto Nishizono
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
 
New configurationoferogamescaperev3
New configurationoferogamescaperev3New configurationoferogamescaperev3
New configurationoferogamescaperev3hiroin0
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?Sho Hashimoto
 
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)Kazuhiro Nishiyama
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
 
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21Kei Tsuji
 

La actualidad más candente (20)

PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
Capistrano
CapistranoCapistrano
Capistrano
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
 
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
 
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
New configurationoferogamescaperev3
New configurationoferogamescaperev3New configurationoferogamescaperev3
New configurationoferogamescaperev3
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
 
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21
 

Similar a How to make gem

Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書Masahiko Toyoshi
 
Debian パッケージングチュートリアル
Debian パッケージングチュートリアルDebian パッケージングチュートリアル
Debian パッケージングチュートリアルNozomu KURASAWA
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Satoshi Kume
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyYouhei SASAKI
 
(工事中) Git の仕組み
(工事中) Git の仕組み(工事中) Git の仕組み
(工事中) Git の仕組みTeloo
 
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~cyberblack28 Ichikawa
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
 
Management of Gems using Bundler.
Management of Gems using Bundler.Management of Gems using Bundler.
Management of Gems using Bundler.Tamotsu Furuya
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリMasahiro Tomita
 
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化Tsuyoshi Yamada
 

Similar a How to make gem (16)

Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Ruby In Wheezy
Ruby In WheezyRuby In Wheezy
Ruby In Wheezy
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
Debian パッケージングチュートリアル
Debian パッケージングチュートリアルDebian パッケージングチュートリアル
Debian パッケージングチュートリアル
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
 
(工事中) Git の仕組み
(工事中) Git の仕組み(工事中) Git の仕組み
(工事中) Git の仕組み
 
Java 7
Java 7Java 7
Java 7
 
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Management of Gems using Bundler.
Management of Gems using Bundler.Management of Gems using Bundler.
Management of Gems using Bundler.
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
 
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
 
Git 実践入門
Git 実践入門Git 実践入門
Git 実践入門
 

Último

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Último (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

How to make gem