MCPcopy Create free account
hub / github.com/pytorch/pytorch / List

Class List

caffe2/python/schema.py:201–281  ·  view source on GitHub ↗

Represents a variable-length list. Values of a list can also be complex fields such as Lists and Structs. In addition to the fields exposed by its `values` field, a List exposes an additional `lengths` field, which will contain the size of each list under the parent domain.

Source from the content-addressed store, hash-verified

199
200
201class List(Field):
202 """Represents a variable-length list.
203
204 Values of a list can also be complex fields such as Lists and Structs.
205 In addition to the fields exposed by its `values` field, a List exposes an
206 additional `lengths` field, which will contain the size of each list under
207 the parent domain.
208 """
209
210 __slots__: Sequence[str] = ("lengths", "_items")
211
212 def __init__(self, values, lengths_blob=None):
213 if isinstance(lengths_blob, Field):
214 assert isinstance(lengths_blob, Scalar)
215 self.lengths = _normalize_field(lengths_blob)
216 else:
217 self.lengths = Scalar(np.int32, lengths_blob)
218 self._items = _normalize_field(values)
219 self.lengths._set_parent(self, 0)
220 self._items._set_parent(self, 1)
221 super().__init__([self.lengths, self._items])
222
223 def field_names(self):
224 value_fields = self._items.field_names()
225 return (
226 ['lengths'] + [_join_field_name('values', v) for v in value_fields]
227 )
228
229 def field_types(self):
230 return self.lengths.field_types() + self._items.field_types()
231
232 def field_metadata(self):
233 return self.lengths.field_metadata() + self._items.field_metadata()
234
235 def field_blobs(self):
236 return self.lengths.field_blobs() + self._items.field_blobs()
237
238 def all_scalars(self):
239 return self.lengths.all_scalars() + self._items.all_scalars()
240
241 def has_blobs(self):
242 return self.lengths.has_blobs() and self._items.has_blobs()
243
244 def clone(self, keep_blobs=True):
245 return type(self)(
246 _normalize_field(self._items, keep_blobs=keep_blobs),
247 _normalize_field(self.lengths, keep_blobs=keep_blobs)
248 )
249
250 def _pprint_impl(self, indent, str_buffer):
251 str_buffer.write(' ' * indent + "List(\n")
252 str_buffer.write(' ' * (indent + 1) + "lengths=\n")
253 self.lengths._pprint_impl(indent=indent + 2, str_buffer=str_buffer)
254 str_buffer.write(' ' * (indent + 1) + "_items=\n")
255 self._items._pprint_impl(indent=indent + 2, str_buffer=str_buffer)
256 str_buffer.write(' ' * indent + ")\n")
257
258 def __getattr__(self, item):

Callers 4

_datasetFunction · 0.90
test_dataset_opsMethod · 0.90
MapFunction · 0.70
get_fieldMethod · 0.70

Calls

no outgoing calls

Tested by 2

_datasetFunction · 0.72
test_dataset_opsMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…