ndav-torch-tensor 0.0.1 → 0.0.2
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 +4 -4
- data/.gitignore +1 -0
- data/lib/ndav/torch/tensor.rb +25 -55
- data/ndav-torch-tensor.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 033bbf192b1235b16c2b5fe0f69ca5505764e1473c9c5b4abdf18d81d4b9ec94
|
|
4
|
+
data.tar.gz: 02bca7f664f5a1fa8ec84a93202ef117f887a62b172305101c4278fc8c6cfd08
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1b9360bf3dd2fce2780775dcb03d19554a7f4a67960555bec1b8e88aa3300453ea515dd827efeaf292d63f703f46b692fa6ae381ac2fb7236fc18aab2f01f7a0
|
|
7
|
+
data.tar.gz: b88c727b786f43319043d874689f8882cbabd4737292d3e663405b1161a1b7b6b904d89b229543f103cad1786310d2ade8a78b930e50c16e82c262e0070ec07b
|
data/.gitignore
CHANGED
data/lib/ndav/torch/tensor.rb
CHANGED
|
@@ -4,6 +4,19 @@ require "torch"
|
|
|
4
4
|
|
|
5
5
|
class NDAV
|
|
6
6
|
module Torch
|
|
7
|
+
module FromNDAV
|
|
8
|
+
def from_ndav(ndav)
|
|
9
|
+
dtype = Tensor::FORMAT_TO_TYPE[ndav.format]
|
|
10
|
+
raise ArgumentError, "unsupported format: #{input.format}, currently supported: #{Tensor::TYPE_TO_FORMAT.values}" unless dtype
|
|
11
|
+
|
|
12
|
+
opts = tensor_options(dtype:)
|
|
13
|
+
tensor = _from_blob_ref(ndav.to_s, [ndav.byte_size / ndav.item_size], opts)
|
|
14
|
+
.reshape(ndav.shape)
|
|
15
|
+
tensor.instance_variable_set(:@ndav, ndav) # keep reference to NDAV to prevent GC
|
|
16
|
+
tensor
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
7
20
|
module Tensor
|
|
8
21
|
TYPE_TO_FORMAT = {
|
|
9
22
|
int8: "c",
|
|
@@ -33,19 +46,6 @@ class NDAV
|
|
|
33
46
|
|
|
34
47
|
TYPE_SIZES = TYPE_TO_FORMAT.transform_values {|format| ITEM_SIZES[format]}
|
|
35
48
|
|
|
36
|
-
module FromNDAV
|
|
37
|
-
def from_ndav(ndav)
|
|
38
|
-
dtype = FORMAT_TO_TYPE[ndav.format]
|
|
39
|
-
raise ArgumentError, "unsupported format: #{input.format}, currently supported: #{TYPE_TO_FORMAT.values}" unless dtype
|
|
40
|
-
|
|
41
|
-
opts = tensor_options(dtype:)
|
|
42
|
-
tensor = _from_blob_ref(ndav.to_s, [ndav.byte_size / ndav.item_size], opts)
|
|
43
|
-
.reshape(ndav.shape)
|
|
44
|
-
tensor.instance_variable_set(:@ndav, ndav) # keep reference to NDAV to prevent GC
|
|
45
|
-
tensor
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
49
|
module ToNDAV
|
|
50
50
|
def to_ndav
|
|
51
51
|
format = TYPE_TO_FORMAT[dtype]
|
|
@@ -56,53 +56,23 @@ class NDAV
|
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
module FromTorchTensor
|
|
60
|
-
def from_torch_tensor(tensor)
|
|
61
|
-
tensor.to_ndav
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
module ToTorchTensor
|
|
66
|
-
def to_torch_tensor
|
|
67
|
-
::Torch.from_ndav(self)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
59
|
module Converter
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
super
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
else
|
|
85
|
-
def TorchTensor(array, *, **)
|
|
86
|
-
if array.kind_of? ::NDAV
|
|
87
|
-
array.to_torch_tensor
|
|
88
|
-
elsif array.respond_to? :to_torch_tensor
|
|
89
|
-
array.to_torch_tensor
|
|
90
|
-
elsif array.respond_to? :to_ndav
|
|
91
|
-
array.to_ndav(*, **).to_torch_tensor
|
|
92
|
-
else
|
|
93
|
-
::NDAV.new(array, *, **).to_torch_tensor
|
|
94
|
-
end
|
|
60
|
+
def TorchTensor(array, *, **)
|
|
61
|
+
if array.kind_of? ::NDAV
|
|
62
|
+
array.to_torch_tensor
|
|
63
|
+
elsif array.respond_to? :to_torch_tensor
|
|
64
|
+
array.to_torch_tensor
|
|
65
|
+
elsif array.respond_to? :to_ndav
|
|
66
|
+
array.to_ndav(*, **).to_torch_tensor
|
|
67
|
+
else
|
|
68
|
+
::NDAV.new(array, *, **).to_torch_tensor
|
|
95
69
|
end
|
|
96
70
|
end
|
|
97
71
|
end
|
|
98
|
-
|
|
99
|
-
::Torch.extend FromNDAV
|
|
100
|
-
::Torch::Tensor.include ToNDAV
|
|
101
|
-
::NDAV.extend FromTorchTensor
|
|
102
|
-
::NDAV.include ToTorchTensor
|
|
103
|
-
::NDAV::Converter.singleton_class.prepend Converter
|
|
104
|
-
::NDAV::Converter.prepend Converter
|
|
105
72
|
end
|
|
106
73
|
end
|
|
74
|
+
|
|
75
|
+
register ::Torch, Torch, name: :torch_tensor
|
|
76
|
+
register ::Torch::Tensor, Torch::Tensor, name: :torch_tensor
|
|
107
77
|
end
|
|
108
78
|
|
data/ndav-torch-tensor.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "ndav-torch-tensor"
|
|
3
|
-
s.version = "0.0.
|
|
3
|
+
s.version = "0.0.2"
|
|
4
4
|
s.authors = ["Kitaiti Makoto"]
|
|
5
5
|
s.summary = "N-Dimensional Array View for Torch::Tensors"
|
|
6
6
|
s.licenses = ["MIT"]
|
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
|
8
8
|
|
|
9
9
|
s.files = Dir.chdir(__dir__) {`git ls-files -z`.split("\x0")}
|
|
10
10
|
|
|
11
|
-
s.add_runtime_dependency "ndav"
|
|
11
|
+
s.add_runtime_dependency "ndav", ">= 0.0.3"
|
|
12
12
|
s.add_runtime_dependency "torch-rb"
|
|
13
13
|
|
|
14
14
|
s.add_development_dependency "rake"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ndav-torch-tensor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kitaiti Makoto
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version:
|
|
18
|
+
version: 0.0.3
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
25
|
+
version: 0.0.3
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: torch-rb
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|