tensor_stream 0.1.5 → 0.2.0

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.
Files changed (34) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +34 -0
  4. data/lib/tensor_stream.rb +7 -3
  5. data/lib/tensor_stream/control_flow.rb +1 -2
  6. data/lib/tensor_stream/evaluator/operation_helpers/array_ops_helper.rb +44 -3
  7. data/lib/tensor_stream/evaluator/operation_helpers/math_helper.rb +9 -0
  8. data/lib/tensor_stream/evaluator/ruby_evaluator.rb +70 -36
  9. data/lib/tensor_stream/graph.rb +15 -7
  10. data/lib/tensor_stream/graph_serializers/graphml.rb +183 -35
  11. data/lib/tensor_stream/graph_serializers/pbtext.rb +81 -14
  12. data/lib/tensor_stream/graph_serializers/serializer.rb +13 -0
  13. data/lib/tensor_stream/helpers/string_helper.rb +12 -0
  14. data/lib/tensor_stream/math_gradients.rb +203 -161
  15. data/lib/tensor_stream/operation.rb +30 -16
  16. data/lib/tensor_stream/ops.rb +29 -19
  17. data/lib/tensor_stream/placeholder.rb +2 -3
  18. data/lib/tensor_stream/session.rb +7 -13
  19. data/lib/tensor_stream/tensor.rb +22 -5
  20. data/lib/tensor_stream/tensor_shape.rb +2 -0
  21. data/lib/tensor_stream/trainer.rb +6 -1
  22. data/lib/tensor_stream/variable.rb +4 -3
  23. data/lib/tensor_stream/version.rb +1 -1
  24. data/samples/gradient_sample.graphml +1255 -0
  25. data/samples/linear_regression.rb +1 -1
  26. data/samples/logistic_regression.rb +9 -2
  27. data/tensor_stream.gemspec +1 -1
  28. data/test_samples/error.graphml +120 -0
  29. data/test_samples/gradient_sample.graphml +1255 -0
  30. data/{samples → test_samples}/iris.rb +0 -0
  31. data/{samples → test_samples}/raw_neural_net_sample.rb +0 -0
  32. data/{samples → test_samples}/test.py +2 -0
  33. data/test_samples/test2.py +41 -0
  34. metadata +41 -47
File without changes
File without changes
@@ -37,8 +37,10 @@ neural_net = tf.matmul(layer_1, weights_layer2) + biases2
37
37
 
38
38
  output = sess.run(neural_net, feed_dict={ inputs: test_inputs })
39
39
 
40
+ g0 = tf.gradients(layer_1, [weights, biases])
40
41
  g = tf.gradients(neural_net, [weights, biases])
41
42
  g2 = tf.gradients(neural_net, [weights_layer2, biases2])
42
43
 
44
+ weight_gradient0, biases_gradient0 = sess.run(g0, feed_dict = { inputs: test_inputs })
43
45
  weight_gradient, biases_gradient = sess.run(g, feed_dict = { inputs: test_inputs })
44
46
  weight_gradient2, biases_gradient2 = sess.run(g2, feed_dict: { inputs => test_inputs })
@@ -0,0 +1,41 @@
1
+ import tensorflow as tf
2
+
3
+ x = tf.constant([[1.0, 0.5, 4.0]])
4
+
5
+ w = tf.constant([[0.4, 0.2],[0.1, 0.45],[0.2, 4.0]])
6
+
7
+ w2 = tf.constant([[0.3, 0.2],[0.15, 0.45]])
8
+ w3 = tf.constant([[0.1, 0.1, 1.0, 1.1, 0.4],[0.05, 0.2, 1.0, 1.2, 0.5],])
9
+
10
+ b= tf.constant([4.0, 5.0])
11
+ b2= tf.constant([4.1, 5.1])
12
+ b3 = tf.constant([2.0, 3.1, 1.0, 0.2, 0.2])
13
+
14
+ matmul_layer_1 = tf.matmul(x, w)
15
+ a = tf.sin(matmul_layer_1 + b)
16
+ matmul_layer_2 = tf.matmul(a, w2)
17
+ matmul_layer_2_add = matmul_layer_2 + b2
18
+ a2 = tf.sin(matmul_layer_2_add)
19
+
20
+
21
+
22
+ g_matmul_layer_1 = tf.gradients(matmul_layer_1, [x, w])
23
+ g_sin_a = tf.gradients(a, [b])
24
+ g_matmul_layer_2 = tf.gradients(matmul_layer_2, [b])
25
+ g_matmul_layer_2_add = tf.gradients(matmul_layer_2_add, [b])
26
+
27
+ sess = tf.Session()
28
+ s2 = sess.run(g_matmul_layer_2_add)
29
+ g_a2 = tf.gradients(a2, [b], name="final")
30
+
31
+ print("layer_1 %s", sess.run(g_matmul_layer_1))
32
+ print("layer_2 %s", sess.run(g_matmul_layer_2))
33
+ print("matmul_layer_2_add %s", s2)
34
+ print("g_sin_a %s", sess.run(g_sin_a))
35
+ print("-- %s", sess.run(tf.cos(matmul_layer_2_add) * g_matmul_layer_2_add))
36
+ print("%s", sess.run(g_a2))
37
+
38
+ writer = tf.summary.FileWriter("/home/jedld/graphs/", sess.graph)
39
+ sess.run(g_a2)
40
+ writer.close()
41
+
metadata CHANGED
@@ -1,192 +1,178 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tensor_stream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Emmanuel Dayo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-17 00:00:00.000000000 Z
11
+ date: 2018-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
18
  version: '1.14'
20
- type: :development
19
+ name: bundler
21
20
  prerelease: false
21
+ type: :development
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.14'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
32
  version: '10.0'
34
- type: :development
33
+ name: rake
35
34
  prerelease: false
35
+ type: :development
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
46
  version: '3.0'
48
- type: :development
47
+ name: rspec
49
48
  prerelease: false
49
+ type: :development
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: awesome_print
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- type: :development
61
+ name: awesome_print
63
62
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
63
  type: :development
77
- prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: pry-byebug
85
70
  requirement: !ruby/object:Gem::Requirement
86
71
  requirements:
87
72
  - - ">="
88
73
  - !ruby/object:Gem::Version
89
74
  version: '0'
90
- type: :development
75
+ name: rubocop
91
76
  prerelease: false
77
+ type: :development
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - ">="
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: byepry
99
84
  requirement: !ruby/object:Gem::Requirement
100
85
  requirements:
101
86
  - - ">="
102
87
  - !ruby/object:Gem::Version
103
88
  version: '0'
104
- type: :development
89
+ name: byepry
105
90
  prerelease: false
91
+ type: :development
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - ">="
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
- name: colorize
113
98
  requirement: !ruby/object:Gem::Requirement
114
99
  requirements:
115
100
  - - ">="
116
101
  - !ruby/object:Gem::Version
117
102
  version: '0'
118
- type: :development
103
+ name: colorize
119
104
  prerelease: false
105
+ type: :development
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - ">="
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
- name: rspec_junit_formatter
127
112
  requirement: !ruby/object:Gem::Requirement
128
113
  requirements:
129
114
  - - ">="
130
115
  - !ruby/object:Gem::Version
131
116
  version: '0'
132
- type: :development
117
+ name: rspec_junit_formatter
133
118
  prerelease: false
119
+ type: :development
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - ">="
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
- name: deep_merge
141
126
  requirement: !ruby/object:Gem::Requirement
142
127
  requirements:
143
128
  - - ">="
144
129
  - !ruby/object:Gem::Version
145
130
  version: '0'
146
- type: :runtime
131
+ name: deep_merge
147
132
  prerelease: false
133
+ type: :runtime
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
136
  - - ">="
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
- name: concurrent-ruby
155
140
  requirement: !ruby/object:Gem::Requirement
156
141
  requirements:
157
142
  - - ">="
158
143
  - !ruby/object:Gem::Version
159
144
  version: '0'
160
- type: :runtime
145
+ name: concurrent-ruby
161
146
  prerelease: false
147
+ type: :runtime
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
150
  - - ">="
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
- name: sciruby
169
154
  requirement: !ruby/object:Gem::Requirement
170
155
  requirements:
171
156
  - - ">="
172
157
  - !ruby/object:Gem::Version
173
158
  version: '0'
174
- type: :runtime
159
+ name: sciruby
175
160
  prerelease: false
161
+ type: :runtime
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
164
  - - ">="
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0'
181
167
  - !ruby/object:Gem::Dependency
182
- name: distribution
183
168
  requirement: !ruby/object:Gem::Requirement
184
169
  requirements:
185
170
  - - ">="
186
171
  - !ruby/object:Gem::Version
187
172
  version: '0'
188
- type: :runtime
173
+ name: distribution
189
174
  prerelease: false
175
+ type: :runtime
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
178
  - - ">="
@@ -208,6 +194,7 @@ files:
208
194
  - ".rspec"
209
195
  - ".rubocop.yml"
210
196
  - ".travis.yml"
197
+ - CHANGELOG.md
211
198
  - CODE_OF_CONDUCT.md
212
199
  - Gemfile
213
200
  - LICENSE.txt
@@ -220,13 +207,16 @@ files:
220
207
  - lib/tensor_stream/device.rb
221
208
  - lib/tensor_stream/evaluator/evaluator.rb
222
209
  - lib/tensor_stream/evaluator/operation_helpers/array_ops_helper.rb
210
+ - lib/tensor_stream/evaluator/operation_helpers/math_helper.rb
223
211
  - lib/tensor_stream/evaluator/operation_helpers/random_gaussian.rb
224
212
  - lib/tensor_stream/evaluator/ruby_evaluator.rb
225
213
  - lib/tensor_stream/graph.rb
226
214
  - lib/tensor_stream/graph_keys.rb
227
215
  - lib/tensor_stream/graph_serializers/graphml.rb
228
216
  - lib/tensor_stream/graph_serializers/pbtext.rb
217
+ - lib/tensor_stream/graph_serializers/serializer.rb
229
218
  - lib/tensor_stream/helpers/op_helper.rb
219
+ - lib/tensor_stream/helpers/string_helper.rb
230
220
  - lib/tensor_stream/initializer.rb
231
221
  - lib/tensor_stream/math_gradients.rb
232
222
  - lib/tensor_stream/monkey_patches/integer.rb
@@ -243,19 +233,23 @@ files:
243
233
  - lib/tensor_stream/types.rb
244
234
  - lib/tensor_stream/variable.rb
245
235
  - lib/tensor_stream/version.rb
236
+ - samples/gradient_sample.graphml
246
237
  - samples/iris.data
247
- - samples/iris.rb
248
238
  - samples/linear_regression.rb
249
239
  - samples/logistic_regression.rb
250
- - samples/raw_neural_net_sample.rb
251
- - samples/test.py
252
240
  - tensor_stream.gemspec
241
+ - test_samples/error.graphml
242
+ - test_samples/gradient_sample.graphml
243
+ - test_samples/iris.rb
244
+ - test_samples/raw_neural_net_sample.rb
245
+ - test_samples/test.py
246
+ - test_samples/test2.py
253
247
  homepage: http://www.github.com/jedld/tensor_stream
254
248
  licenses:
255
249
  - MIT
256
250
  metadata:
257
251
  allowed_push_host: https://rubygems.org
258
- post_install_message:
252
+ post_install_message:
259
253
  rdoc_options: []
260
254
  require_paths:
261
255
  - lib
@@ -270,9 +264,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
264
  - !ruby/object:Gem::Version
271
265
  version: '0'
272
266
  requirements: []
273
- rubyforge_project:
274
- rubygems_version: 2.6.10
275
- signing_key:
267
+ rubyforge_project:
268
+ rubygems_version: 2.6.13
269
+ signing_key:
276
270
  specification_version: 4
277
271
  summary: A Pure ruby tensorflow implementation
278
272
  test_files: []