grx-tensor 0.1.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 +7 -0
- data/CHANGELOG.md +54 -0
- data/LICENSE.txt +21 -0
- data/README.md +471 -0
- data/ext/grx/extconf.rb +31 -0
- data/ext/grx/grx_core.c +534 -0
- data/ext/grx/grx_core.h +85 -0
- data/ext/unix/Makefile +66 -0
- data/ext/windows/Makefile.mingw +50 -0
- data/grx-tensor.gemspec +88 -0
- data/lib/grx/c_api.rb +96 -0
- data/lib/grx/errors.rb +8 -0
- data/lib/grx/loss.rb +81 -0
- data/lib/grx/nn.rb +262 -0
- data/lib/grx/optim.rb +121 -0
- data/lib/grx/storage.rb +85 -0
- data/lib/grx/tensor.rb +623 -0
- data/lib/grx/version.rb +5 -0
- data/lib/grx.rb +49 -0
- metadata +159 -0
metadata
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: grx-tensor
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Angel Gabriel Garcia Razo
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rake
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '13.0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '13.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: rake-compiler
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.2'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.2'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: minitest
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '5.0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '5.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: bundler
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '2.0'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '2.0'
|
|
68
|
+
description: |
|
|
69
|
+
GRX brings PyTorch-style tensor operations to Ruby. Every arithmetic op,
|
|
70
|
+
activation, and optimizer step runs through a native C library compiled
|
|
71
|
+
with AVX2+FMA SIMD. Ruby is the interface — C does the work.
|
|
72
|
+
|
|
73
|
+
Features: autograd, SGD/Adam optimizers, Linear/Sequential/Dropout/BatchNorm
|
|
74
|
+
layers, MSE/BCE/CrossEntropy loss functions, Xavier and He weight init.
|
|
75
|
+
Cross-platform: .so on Linux, .dylib on macOS, .dll on Windows.
|
|
76
|
+
email:
|
|
77
|
+
- garabatoangelopolis@gmail.com
|
|
78
|
+
executables: []
|
|
79
|
+
extensions:
|
|
80
|
+
- ext/grx/extconf.rb
|
|
81
|
+
extra_rdoc_files: []
|
|
82
|
+
files:
|
|
83
|
+
- CHANGELOG.md
|
|
84
|
+
- LICENSE.txt
|
|
85
|
+
- README.md
|
|
86
|
+
- ext/grx/extconf.rb
|
|
87
|
+
- ext/grx/grx_core.c
|
|
88
|
+
- ext/grx/grx_core.h
|
|
89
|
+
- ext/unix/Makefile
|
|
90
|
+
- ext/windows/Makefile.mingw
|
|
91
|
+
- grx-tensor.gemspec
|
|
92
|
+
- lib/grx.rb
|
|
93
|
+
- lib/grx/c_api.rb
|
|
94
|
+
- lib/grx/errors.rb
|
|
95
|
+
- lib/grx/loss.rb
|
|
96
|
+
- lib/grx/nn.rb
|
|
97
|
+
- lib/grx/optim.rb
|
|
98
|
+
- lib/grx/storage.rb
|
|
99
|
+
- lib/grx/tensor.rb
|
|
100
|
+
- lib/grx/version.rb
|
|
101
|
+
homepage: https://github.com/Gabo-Razo/grx-tensor
|
|
102
|
+
licenses:
|
|
103
|
+
- MIT
|
|
104
|
+
metadata:
|
|
105
|
+
homepage_uri: https://github.com/Gabo-Razo/grx-tensor
|
|
106
|
+
changelog_uri: https://github.com/Gabo-Razo/grx-tensor/blob/main/CHANGELOG.md
|
|
107
|
+
bug_tracker_uri: https://github.com/Gabo-Razo/grx-tensor/issues
|
|
108
|
+
post_install_message: |2+
|
|
109
|
+
|
|
110
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
111
|
+
GRX-Tensor 0.1.0 installed
|
|
112
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
113
|
+
|
|
114
|
+
Compile the C extension to enable AVX2+FMA SIMD:
|
|
115
|
+
|
|
116
|
+
Linux / macOS: make -C ext/unix
|
|
117
|
+
Windows: make -C ext/windows -f Makefile.mingw
|
|
118
|
+
|
|
119
|
+
Without it, GRX runs in pure Ruby fallback mode (slower but correct).
|
|
120
|
+
|
|
121
|
+
Quick start:
|
|
122
|
+
|
|
123
|
+
require "grx"
|
|
124
|
+
|
|
125
|
+
a = GRX.tensor([1.0, 2.0, 3.0], [3], requires_grad: true)
|
|
126
|
+
b = GRX.tensor([4.0, 5.0, 6.0], [3], requires_grad: true)
|
|
127
|
+
c = a + b
|
|
128
|
+
c.backward
|
|
129
|
+
puts a.grad.to_a # [1.0, 1.0, 1.0]
|
|
130
|
+
|
|
131
|
+
net = GRX::NN::Sequential.new(
|
|
132
|
+
GRX::NN::Linear.new(4, 16),
|
|
133
|
+
GRX::NN::ReLU.new,
|
|
134
|
+
GRX::NN::Linear.new(16, 1)
|
|
135
|
+
)
|
|
136
|
+
opt = GRX::Optim::Adam.new(net.parameters, lr: 0.001)
|
|
137
|
+
|
|
138
|
+
Docs: https://github.com/Gabo-Razo/grx-tensor
|
|
139
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
140
|
+
|
|
141
|
+
rdoc_options: []
|
|
142
|
+
require_paths:
|
|
143
|
+
- lib
|
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
|
+
requirements:
|
|
146
|
+
- - ">="
|
|
147
|
+
- !ruby/object:Gem::Version
|
|
148
|
+
version: 3.0.0
|
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: '0'
|
|
154
|
+
requirements: []
|
|
155
|
+
rubygems_version: 3.6.7
|
|
156
|
+
specification_version: 4
|
|
157
|
+
summary: Tensor framework for Ruby with autograd and a C+SIMD compute core
|
|
158
|
+
test_files: []
|
|
159
|
+
...
|