tensor_stream 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []