treyja 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ad4ca8e455a01ba5b5c44cf4314011f89e10f7ab48ee3c2ba88c08e7ab31105
4
- data.tar.gz: c3bb03cf7e18d52ca9e6036903db316e9c7a672cafe346b42875d5f77deec31a
3
+ metadata.gz: 126534d5a966eec091dd2542c8e7fe0d70e5c483ca42324dba7872504976545b
4
+ data.tar.gz: 94e2b98f05650a6d0212ed795a43864797bf357ffaad6227537f6b3b44c768df
5
5
  SHA512:
6
- metadata.gz: 7220d6f7efb6c80d3ab9bcd2778261b6095cf56dd72601fea2b5e9828456bd5ccf6c1fff843f0feb60e4701f639b459144b8523b6f3afaee0672afa344acab94
7
- data.tar.gz: 172a497f871142f62aa488e08c5a3d210e0774dd1d5285d49ae8136f8b261235c0c4c058527f4f162b926e18daa1d3c1ba0d89ea4afc86b90eb4573921c8191c
6
+ metadata.gz: f8a4bfb3224a2e2ebf0b5dacb9263e75e281487411c6edde32f61a5464f4969773448dad0e309e27295e628082aac62833a6ed893317352949bd3c30ea71cfd2
7
+ data.tar.gz: 2cd1465e1e3cd403ba74c2b260c6d7cac9c20da4d072828f034975cd722fd30596e66ed8f3040e5216edc75d28c828ff1cb6f9cbeac019a48c58fb2f663fd41f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- treyja (0.1.2)
4
+ treyja (0.1.3)
5
5
  google-protobuf (~> 3.6)
6
6
 
7
7
  GEM
@@ -9,7 +9,7 @@ GEM
9
9
  specs:
10
10
  coderay (1.1.2)
11
11
  diff-lcs (1.3)
12
- google-protobuf (3.7.1)
12
+ google-protobuf (3.7.1-universal-darwin)
13
13
  method_source (0.9.2)
14
14
  pry (0.12.0)
15
15
  coderay (~> 1.1.0)
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Treyja is a Ruby script which takes `Tensors` protobin and outputs in human readable way.
4
4
 
5
- ## Install
5
+ ## Installation
6
6
 
7
7
  Make sure you have `ruby` and `gem` commands installed.
8
8
 
@@ -13,34 +13,19 @@ $ gem --version
13
13
  2.7.6
14
14
  ```
15
15
 
16
- Using `specific_install` gem, you can install `treyja` gem directly from the directlyGitHub repo.
16
+ Install it yourself as:
17
17
 
18
- The following command will do it:
19
-
20
- ```console
21
- $ gem install specific_install
22
- $ gem specific_install https://github.com/xc-jp/treyja-ruby.git
23
- ```
24
-
25
- You can check if `treyja` is properly installed by:
26
-
27
- ```console
28
- % gem list treyja
29
-
30
- *** LOCAL GEMS ***
31
-
32
- treyja (0.1.0)
33
- ```
18
+ $ gem install treyja
34
19
 
35
20
 
36
21
  ## How to use
37
22
 
38
- Assume that we are in the root dir of `alderaan` and the path to the project root of treyja-ruby is set to `$TREYJA_RUBY_ROOT`.
23
+ Assume that we are in the root dir of `alderaan`.
39
24
 
40
25
  ### To show in JSON format
41
26
 
42
27
  ```console
43
- $ draupnir get draupnir/test/fixtures/configuration/literal.yaml | $TREYJA_RUBY_ROOT/bin/treyja json
28
+ $ draupnir get draupnir/test/fixtures/configuration/literal.yaml | treyja json
44
29
  {"tensors":[{"dims":[3,2],"dataType":"FLOAT","int32Data":[],"int64Data":[],"uint32Data":[],"uint64Data":[],"floatData":[0.2,0.30000001,1,2,3,5],"doubleData":[]}]}
45
30
  {"tensors":[{"dims":[3,2],"dataType":"FLOAT","int32Data":[],"int64Data":[],"uint32Data":[],"uint64Data":[],"floatData":[0,0,0.5,0.60000002,0.69999999,0.80000001],"doubleData":[]}]}
46
31
  ```
@@ -50,7 +35,7 @@ $ draupnir get draupnir/test/fixtures/configuration/literal.yaml | $TREYJA_RUBY_
50
35
  [jq](https://stedolan.github.io/jq/) command is handy to pretty print JSON.
51
36
 
52
37
  ```console
53
- $ draupnir get draupnir/test/fixtures/configuration/literal.yaml | $TREYJA_RUBY_ROOT/bin/treyja json | jq
38
+ $ draupnir get draupnir/test/fixtures/configuration/literal.yaml | treyja json | jq
54
39
  {
55
40
  "tensors": [
56
41
  {
@@ -111,10 +96,10 @@ Shape of input tensors must be 3 dimensional and channel count must be 1 (graysc
111
96
  Element type of input tensors must be uint8, int8, float or double.
112
97
 
113
98
  ```console
114
- $ draupnir get mnist --take 100 | $TREYJA_RUBY_ROOT/bin/treyja image --output tmp/mnist-images
99
+ $ draupnir get mnist --take 100 | treyja image --output tmp/mnist-images
115
100
  ```
116
101
 
117
- ![mnits-0](https://user-images.githubusercontent.com/1730718/48336250-3b13a100-e6a3-11e8-9f39-558ab792ac01.png)
102
+ ![mnist-0](https://user-images.githubusercontent.com/1730718/48336250-3b13a100-e6a3-11e8-9f39-558ab792ac01.png)
118
103
  ![mnist-1](https://user-images.githubusercontent.com/1730718/48352360-df134180-e6cf-11e8-8de0-7d083315a55d.png)
119
104
  ![mnist-2](https://user-images.githubusercontent.com/1730718/48352418-f8b48900-e6cf-11e8-8bf5-0714c152911c.png)
120
105
  ![mnist-3](https://user-images.githubusercontent.com/1730718/48352488-21d51980-e6d0-11e8-9af7-907441dfe540.png)
data/exe/treyja CHANGED
@@ -1,211 +1,5 @@
1
1
  #! /usr/bin/env ruby
2
2
 
3
- $LOAD_PATH << File.join(__dir__, "../lib")
4
- require 'tensors_pb.rb'
3
+ require "treyja/exe"
5
4
 
6
- $unabbrev = {
7
- 'h' => 'help',
8
- 'help' => 'help',
9
- 'output' => 'output',
10
- 'normalize' => 'normalize',
11
- 'round' => 'round'
12
- }
13
-
14
- $options = [
15
- *ARGV.map { |k| (ms = k.match(/^--?(\w+)/)) ? [$unabbrev[ms[1]], true] : nil },
16
- *ARGV.each_cons(2).map { |k, v| (v !~ /^-/ && ms = k.match(/^--?(\w+)/)) ? [$unabbrev[ms[1]], v] : nil }
17
- ].compact.to_h
18
-
19
- $command, $file = ARGV.take_while { |s| s !~ /^-/ }
20
- if $command.nil? || $options["help"]
21
- puts <<EOS
22
- Usage: treyja COMMAND [FILE] [OPTIONS]
23
-
24
- If FILE is not given, it reads from STDIN.
25
-
26
- Available options:
27
- -h,--help Show this help text
28
- --output DIR Directory to output images
29
- --normalize Normalize floating values (image only)
30
- --round INT Digit to round floating values (default: 4)
31
-
32
- Available commands:
33
- json Output tensors in JSON format
34
- csv Output tensors in CSV format
35
- image Create png images and output to DIR
36
- dump Dump in the format of inner expression
37
- EOS
38
- exit
39
- end
40
-
41
- $round = $options.fetch('round', 4).to_f
42
- if $round > 0
43
- class Float
44
- def to_s_with_round
45
- self.round($round).to_s_without_round
46
- end
47
- alias_method :to_s_without_round, :to_s
48
- alias_method :to_s, :to_s_with_round
49
- end
50
-
51
- class Double
52
- def to_s_with_round
53
- self.round($round).to_s_without_round
54
- end
55
- alias_method :to_s_without_round, :to_s
56
- alias_method :to_s, :to_s_with_round
57
- end
58
- end
59
-
60
- def reader
61
- io = $file ? open($file) : STDIN
62
- io.binmode
63
-
64
- Enumerator.new do |y|
65
- while magic = io.read(4)
66
- raise "Incorrect magic bytes" unless magic == 'XCIX'
67
- length = io.read(8).reverse.unpack("Q").first.to_i
68
- y << Tensors::TensorsProto.decode(io.read(length))
69
- end
70
- end
71
- end
72
-
73
-
74
- def write_image tensor, k, file
75
- width, height, channel = tensor.dims
76
- width ||= 1
77
- height ||= 1
78
- channel ||= 1
79
- offset = width * height * channel * k
80
- range = offset ... (width * height * channel + offset)
81
-
82
- normalizer =
83
- if $options['normalize']
84
- -> (xs) {
85
- min, max = xs.minmax
86
- xs.map { |f| ((f - min) / (max - min) * 255).to_i }
87
- }
88
- else
89
- -> (xs) { xs.map { |f| (f * 255).to_i } }
90
- end
91
-
92
- depth, org_data =
93
- case tensor.data_type
94
- when :UINT8
95
- [8, tensor.byte_data.unpack('C*')[range]]
96
- when :INT8
97
- [8, tensor.byte_data.unpack('C*')[range]]
98
- when :FLOAT
99
- [8, normalizer.call(tensor.float_data[range])]
100
- when :DOUBLE
101
- [8, normalizer.call(tensor.double_data[range])]
102
- else
103
- raise "unsupported data type: #{tensor.data_type}"
104
- end
105
-
106
- color_type =
107
- case channel
108
- when 1
109
- 0 # grayscale
110
- when 2
111
- 4 # grayscale and alpha
112
- when 3
113
- 2 # rgb
114
- when 4
115
- 6 # rgba
116
- else
117
- raise "unsupported channel: #{channel}"
118
- end
119
-
120
- raw_data = (0...height).map do |y|
121
- (0...width).map do |x|
122
- (0...channel).map do |ch|
123
- org_data[ch * height * width + y * width + x]
124
- end
125
- end
126
- end
127
-
128
- def chunk(type, data)
129
- [data.bytesize, type, data, Zlib.crc32(type + data)].pack("NA4A*N")
130
- end
131
-
132
- open(file, 'w') do |io|
133
- io.print "\x89PNG\r\n\x1a\n"
134
- io.print chunk("IHDR", [width, height, depth, color_type, 0, 0, 0].pack("NNCCCCC"))
135
- img_data = raw_data.map {|line| ([0] + line.flatten).pack("C*") }.join
136
- io.print chunk("IDAT", Zlib::Deflate.deflate(img_data))
137
- io.print chunk("IEND", "")
138
- end
139
- end
140
-
141
- def dims_to_indices dims
142
- if dims.empty?
143
- [[]]
144
- else
145
- x = dims.first
146
- xs = dims[1..-1]
147
- Enumerator.new do |y|
148
- dims_to_indices(xs).each do |is|
149
- x.times.each do |i|
150
- y << [i, *is]
151
- end
152
- end
153
- end
154
- end
155
- end
156
-
157
- def raw_data tensor
158
- case tensor.data_type
159
- when :INT8, :UINT8
160
- tensor.byte_data.unpack('C*')
161
- when :FLOAT
162
- tensor.float_data
163
- when :DOUBLE
164
- tensor.double_data
165
- else
166
- raise "unsupported data type: #{tensor.data_type}"
167
- end
168
- end
169
-
170
- case $command
171
- when "dump"
172
- reader.each do |ts|
173
- p ts
174
- STDOUT.flush
175
- end
176
- when "json"
177
- reader.each do |ts|
178
- puts ts.to_json
179
- STDOUT.flush
180
- end
181
- when "image"
182
- dir = $options["output"]
183
- raise "--output option required" unless dir
184
-
185
- FileUtils.mkdir_p dir
186
-
187
- require "zlib"
188
- reader.each_with_index do |tensors, i|
189
- tensors.tensors.each_with_index do |tensor, j|
190
- n = tensor.dims.drop(3).inject(1, :*) # Drop width, height and channel and fold the rest
191
- n.times.each do |k|
192
- postfix = ([i, j] + (n > 1 ? [k] : [])).map(&:to_s).join('-')
193
- dst = File.join(dir, "image-#{postfix}.png")
194
- write_image tensor, k, dst
195
- end
196
- end
197
- end
198
- when "csv"
199
- if head = reader.first
200
- headers = head.tensors.each_with_index.flat_map do |t, i|
201
- dims_to_indices(t.dims).map do |ix|
202
- [i.to_s, ix.empty? ? nil : ix.reverse.map(&:to_s).join('_')].compact.join('-')
203
- end
204
- end
205
- puts headers.join(',')
206
- puts head.tensors.flat_map { |t| raw_data(t) }.map(&:to_s).join(',')
207
- reader.each do |ts|
208
- puts ts.tensors.flat_map { |t| raw_data(t) }.map(&:to_s).join(',')
209
- end
210
- end
211
- end
5
+ Treyja::Exe.new(ARGV).run
@@ -0,0 +1,57 @@
1
+ module Treyja
2
+ module Command
3
+ class Csv
4
+ attr_reader :reader
5
+
6
+ def initialize reader
7
+ @reader = reader
8
+ end
9
+
10
+ def run
11
+ if head = reader.first
12
+ headers = head.tensors.each_with_index.flat_map do |t, i|
13
+ dims_to_indices(t.dims).map do |ix|
14
+ [i.to_s, ix.empty? ? nil : ix.reverse.map(&:to_s).join('_')].compact.join('-')
15
+ end
16
+ end
17
+ puts headers.join(',')
18
+ puts head.tensors.flat_map { |t| raw_data(t) }.map(&:to_s).join(',')
19
+ reader.each do |ts|
20
+ puts ts.tensors.flat_map { |t| raw_data(t) }.map(&:to_s).join(',')
21
+ end
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def dims_to_indices dims
28
+ if dims.empty?
29
+ [[]]
30
+ else
31
+ x = dims.first
32
+ xs = dims[1..-1]
33
+ Enumerator.new do |y|
34
+ dims_to_indices(xs).each do |is|
35
+ x.times.each do |i|
36
+ y << [i, *is]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ def raw_data tensor
44
+ case tensor.data_type
45
+ when :INT8, :UINT8
46
+ tensor.byte_data.unpack('C*')
47
+ when :FLOAT
48
+ tensor.float_data
49
+ when :DOUBLE
50
+ tensor.double_data
51
+ else
52
+ raise "unsupported data type: #{tensor.data_type}"
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,18 @@
1
+ module Treyja
2
+ module Command
3
+ class Dump
4
+ attr_reader :reader
5
+
6
+ def initialize reader
7
+ @reader = reader
8
+ end
9
+
10
+ def run
11
+ reader.each do |ts|
12
+ p ts
13
+ STDOUT.flush
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,25 @@
1
+ module Treyja
2
+ module Command
3
+ class Help
4
+ def run
5
+ puts <<EOS
6
+ Usage: treyja COMMAND [FILE] [OPTIONS]
7
+
8
+ If FILE is not given, it reads from STDIN.
9
+
10
+ Available options:
11
+ -h,--help Show this help text
12
+ --output DIR Directory to output images
13
+ --normalize Normalize floating values (image only)
14
+ --round INT Digit to round floating values (default: 4)
15
+
16
+ Available commands:
17
+ json Output tensors in JSON format
18
+ csv Output tensors in CSV format
19
+ image Create png images and output to DIR
20
+ dump Dump in the format of inner expression
21
+ EOS
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,104 @@
1
+ require "zlib"
2
+
3
+ module Treyja
4
+ module Command
5
+ class Image
6
+ attr_reader :reader, :output_dir, :options
7
+
8
+ def initialize reader, output_dir, options = {}
9
+ @reader = reader
10
+ @output_dir = output_dir
11
+ @options = options
12
+ end
13
+
14
+ def run
15
+ FileUtils.mkdir_p output_dir
16
+
17
+ reader.each_with_index do |tensors, i|
18
+ tensors.tensors.each_with_index do |tensor, j|
19
+ n = tensor.dims.drop(3).inject(1, :*) # Drop width, height and channel and fold the rest
20
+ n.times.each do |k|
21
+ postfix = ([i, j] + (n > 1 ? [k] : [])).map(&:to_s).join('-')
22
+ dst = File.join(output_dir, "image-#{postfix}.png")
23
+ write_image tensor, k, dst
24
+ end
25
+ end
26
+ end
27
+ reader.each do |ts|
28
+ p ts
29
+ STDOUT.flush
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def write_image tensor, k, file
36
+ width, height, channel = tensor.dims
37
+ width ||= 1
38
+ height ||= 1
39
+ channel ||= 1
40
+ offset = width * height * channel * k
41
+ range = offset ... (width * height * channel + offset)
42
+
43
+ normalizer =
44
+ if options['normalize']
45
+ -> (xs) {
46
+ min, max = xs.minmax
47
+ xs.map { |f| ((f - min) / (max - min) * 255).to_i }
48
+ }
49
+ else
50
+ -> (xs) { xs.map { |f| (f * 255).to_i } }
51
+ end
52
+
53
+ depth, org_data =
54
+ case tensor.data_type
55
+ when :UINT8
56
+ [8, tensor.byte_data.unpack('C*')[range]]
57
+ when :INT8
58
+ [8, tensor.byte_data.unpack('C*')[range]]
59
+ when :FLOAT
60
+ [8, normalizer.call(tensor.float_data[range])]
61
+ when :DOUBLE
62
+ [8, normalizer.call(tensor.double_data[range])]
63
+ else
64
+ raise "unsupported data type: #{tensor.data_type}"
65
+ end
66
+
67
+ color_type =
68
+ case channel
69
+ when 1
70
+ 0 # grayscale
71
+ when 2
72
+ 4 # grayscale and alpha
73
+ when 3
74
+ 2 # rgb
75
+ when 4
76
+ 6 # rgba
77
+ else
78
+ raise "unsupported channel: #{channel}"
79
+ end
80
+
81
+ raw_data = (0...height).map do |y|
82
+ (0...width).map do |x|
83
+ (0...channel).map do |ch|
84
+ org_data[ch * height * width + y * width + x]
85
+ end
86
+ end
87
+ end
88
+
89
+ def chunk(type, data)
90
+ [data.bytesize, type, data, Zlib.crc32(type + data)].pack("NA4A*N")
91
+ end
92
+
93
+ open(file, 'w') do |io|
94
+ io.print "\x89PNG\r\n\x1a\n"
95
+ io.print chunk("IHDR", [width, height, depth, color_type, 0, 0, 0].pack("NNCCCCC"))
96
+ img_data = raw_data.map {|line| ([0] + line.flatten).pack("C*") }.join
97
+ io.print chunk("IDAT", Zlib::Deflate.deflate(img_data))
98
+ io.print chunk("IEND", "")
99
+ end
100
+ end
101
+
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,18 @@
1
+ module Treyja
2
+ module Command
3
+ class Json
4
+ attr_reader :reader
5
+
6
+ def initialize reader
7
+ @reader = reader
8
+ end
9
+
10
+ def run
11
+ reader.each do |ts|
12
+ puts ts.to_json
13
+ STDOUT.flush
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
data/lib/treyja/exe.rb ADDED
@@ -0,0 +1,81 @@
1
+ require "optparse"
2
+
3
+ require "treyja/reader"
4
+ require "treyja/command/csv"
5
+ require "treyja/command/dump"
6
+ require "treyja/command/help"
7
+ require "treyja/command/image"
8
+ require "treyja/command/json"
9
+
10
+ class Float
11
+ def self.round_digits
12
+ @round_digits
13
+ end
14
+
15
+ def to_s_with_round
16
+ Float.round_digits ?
17
+ self.round(Float.round_digits).to_s_without_round :
18
+ self.to_s_without_round
19
+ end
20
+
21
+ alias_method :to_s_without_round, :to_s
22
+ alias_method :to_s, :to_s_with_round
23
+ end
24
+
25
+ module Treyja
26
+ class Exe
27
+ def initialize args
28
+ @args = args
29
+ end
30
+
31
+ def options
32
+ @options ||= {}
33
+ end
34
+
35
+ def patch_round round
36
+ if round > 0
37
+ ::Float.instance_variable_set "@round_digits", round
38
+ end
39
+ end
40
+
41
+ def run
42
+ opts = OptionParser.new
43
+ opts.on("--output DIR")
44
+ opts.on("--normalize")
45
+ opts.on("--round INT")
46
+ opts.on("--version") do
47
+ puts "Version: #{Treyja::VERSION}"
48
+ return
49
+ end
50
+ opts.on("-h", "--help") do
51
+ Treyja::Command::Help.new.run
52
+ return
53
+ end
54
+ command, file = opts.parse!(@args, into: options)
55
+
56
+ patch_round options.fetch(:round, 4).to_f
57
+ case command
58
+ when "dump"
59
+ reader = Treyja::Reader.new file
60
+ Treyja::Command::Dump.new(reader).run
61
+ when "json"
62
+ reader = Treyja::Reader.new file
63
+ Treyja::Command::Json.new(reader).run
64
+ when "image"
65
+ output_dir = options[:output]
66
+ raise "--output option required" unless output_dir
67
+
68
+ reader = Treyja::Reader.new file
69
+ Treyja::Command::Image.new(reader, output_dir, options.slice(:normalize)).run
70
+ when "csv"
71
+ reader = Treyja::Reader.new file
72
+ Treyja::Command::Csv.new(reader).run
73
+ when nil
74
+ Treyja::Command::Help.new.run
75
+ else
76
+ puts "Unknown command: #{command}"
77
+ Treyja::Command::Help.new.run
78
+ end
79
+ end
80
+ end
81
+ end
File without changes
@@ -3,7 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
- require 'tensor_pb'
6
+ require 'treyja/proto/tensor_pb'
7
7
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
8
  add_message "tensors.TensorsProto" do
9
9
  repeated :tensors, :message, 1, "tensor.TensorProto"
@@ -0,0 +1,25 @@
1
+ require "treyja/proto/tensors_pb"
2
+
3
+ module Treyja
4
+ class Reader
5
+ extend Forwardable
6
+ include Enumerable
7
+
8
+ delegate [:each] => :@enumerator
9
+
10
+ MAGIC_BYTES = "XCIX"
11
+
12
+ def initialize file = nil
13
+ io = file ? open(file) : STDIN
14
+ io.binmode
15
+
16
+ @enumerator = Enumerator.new do |y|
17
+ while magic = io.read(4)
18
+ raise "Incorrect magic bytes" unless magic == MAGIC_BYTES
19
+ length = io.read(8).reverse.unpack("Q").first.to_i
20
+ y << Tensors::TensorsProto.decode(io.read(length))
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module Treyja
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treyja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cross Compass
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-26 00:00:00.000000000 Z
11
+ date: 2019-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -102,12 +102,18 @@ files:
102
102
  - default.nix
103
103
  - exe/treyja
104
104
  - gemset.nix
105
- - lib/tensor_pb.rb
106
- - lib/tensors_pb.rb
107
105
  - lib/treyja.rb
106
+ - lib/treyja/command/csv.rb
107
+ - lib/treyja/command/dump.rb
108
+ - lib/treyja/command/help.rb
109
+ - lib/treyja/command/image.rb
110
+ - lib/treyja/command/json.rb
111
+ - lib/treyja/exe.rb
112
+ - lib/treyja/proto/tensor_pb.rb
113
+ - lib/treyja/proto/tensors_pb.rb
114
+ - lib/treyja/reader.rb
108
115
  - lib/treyja/version.rb
109
116
  - treyja.gemspec
110
- - treyja/.gitignore
111
117
  homepage: http://github.com/xc-jp/treyja-ruby
112
118
  licenses:
113
119
  - MIT
data/treyja/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status