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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36132b58b87a1b47538fb26518f86d24142210e817050ab50a26a2de8d7e1ef9
4
- data.tar.gz: f628b3933bbda77e839df1631565c6158243a9cb6e7cbbc0bc343de0e19fd758
3
+ metadata.gz: 033bbf192b1235b16c2b5fe0f69ca5505764e1473c9c5b4abdf18d81d4b9ec94
4
+ data.tar.gz: 02bca7f664f5a1fa8ec84a93202ef117f887a62b172305101c4278fc8c6cfd08
5
5
  SHA512:
6
- metadata.gz: d703a4c0eae1e1f1452571f62efe455e79bbf429ab430f51c13346bf9a5dafcec65c47d7421890d78a36b012e3771f620b61d20bb82d08060ca380f022f2c391
7
- data.tar.gz: 1ad44e898483c80964c2458b8680ab58b7a031f049d2b8b9fed5c61d2bda81b27649b44c6c07bb9525ddbb4245c577b37bf4c4c6865a8328143d0f599c7e8146
6
+ metadata.gz: 1b9360bf3dd2fce2780775dcb03d19554a7f4a67960555bec1b8e88aa3300453ea515dd827efeaf292d63f703f46b692fa6ae381ac2fb7236fc18aab2f01f7a0
7
+ data.tar.gz: b88c727b786f43319043d874689f8882cbabd4737292d3e663405b1161a1b7b6b904d89b229543f103cad1786310d2ade8a78b930e50c16e82c262e0070ec07b
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  Gemfile.lock
2
2
  .bundle/
3
+ pkg/
@@ -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
- if defined? ::NDAV::Converter::TorchTensor
73
- def TorchTensor(array, *, **)
74
- if array.kind_of? ::NDAV
75
- array.to_torch_tensor
76
- elsif array.respond_to? :to_torch_tensor
77
- array.to_torch_tensor
78
- elsif array.respond_to? :to_ndav
79
- array.to_ndav(*, **).to_torch_tensor
80
- else
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
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ndav-torch-tensor"
3
- s.version = "0.0.1"
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.1
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: '0'
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: '0'
25
+ version: 0.0.3
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: torch-rb
28
28
  requirement: !ruby/object:Gem::Requirement