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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +13 -0
- data/README.md +34 -0
- data/lib/tensor_stream.rb +7 -3
- data/lib/tensor_stream/control_flow.rb +1 -2
- data/lib/tensor_stream/evaluator/operation_helpers/array_ops_helper.rb +44 -3
- data/lib/tensor_stream/evaluator/operation_helpers/math_helper.rb +9 -0
- data/lib/tensor_stream/evaluator/ruby_evaluator.rb +70 -36
- data/lib/tensor_stream/graph.rb +15 -7
- data/lib/tensor_stream/graph_serializers/graphml.rb +183 -35
- data/lib/tensor_stream/graph_serializers/pbtext.rb +81 -14
- data/lib/tensor_stream/graph_serializers/serializer.rb +13 -0
- data/lib/tensor_stream/helpers/string_helper.rb +12 -0
- data/lib/tensor_stream/math_gradients.rb +203 -161
- data/lib/tensor_stream/operation.rb +30 -16
- data/lib/tensor_stream/ops.rb +29 -19
- data/lib/tensor_stream/placeholder.rb +2 -3
- data/lib/tensor_stream/session.rb +7 -13
- data/lib/tensor_stream/tensor.rb +22 -5
- data/lib/tensor_stream/tensor_shape.rb +2 -0
- data/lib/tensor_stream/trainer.rb +6 -1
- data/lib/tensor_stream/variable.rb +4 -3
- data/lib/tensor_stream/version.rb +1 -1
- data/samples/gradient_sample.graphml +1255 -0
- data/samples/linear_regression.rb +1 -1
- data/samples/logistic_regression.rb +9 -2
- data/tensor_stream.gemspec +1 -1
- data/test_samples/error.graphml +120 -0
- data/test_samples/gradient_sample.graphml +1255 -0
- data/{samples → test_samples}/iris.rb +0 -0
- data/{samples → test_samples}/raw_neural_net_sample.rb +0 -0
- data/{samples → test_samples}/test.py +2 -0
- data/test_samples/test2.py +41 -0
- 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.
|
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-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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: []
|