Thanks too,
I have find the answer from 
"https://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object-do";

This came up in another question recently. I'll elaborate on my answer from 
there:

Ellipsis is an object that can appear in slice notation. For example:

myList[1:2, ..., 0]


Its interpretation is purely up to whatever implements the __getitem__ function 
and sees Ellipsis objects there, but its main (and intended) use is in the 
numeric python extension, which adds a multidimensional array type. Since there 
are more than one dimensions, slicing becomes more complex than just a start 
and stop index; it is useful to be able to slice in multiple dimensions as 
well. E.g., given a 4x4 array, the top left area would be defined by the slice 
[:2,:2]:

>>> a
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12],
       [13, 14, 15, 16]])

>>> a[:2,:2]  # top left
array([[1, 2],
       [5, 6]])


Extending this further, Ellipsis is used here to indicate a placeholder for the 
rest of the array dimensions not specified. Think of it as indicating the full 
slice [:] for all the dimensions in the gap it is placed, so for a 3d array, 
a[...,0] is the same as a[:,:,0] and for 4d, a[:,:,:,0], similarly, a[0,...,0] 
is a[0,:,:,0] (with however many colons in the middle make up the full number 
of dimensions in the array).

Interestingly, in python3, the Ellipsis literal (...) is usable outside the 
slice syntax, so you can actually write:

>>> ...
Ellipsis


Other than the various numeric types, no, I don't think it's used. As far as 
I'm aware, it was added purely for numpy use and has no core support other than 
providing the object and corresponding syntax. The object being there didn't 
require this, but the literal "..." support for slices did.







在 2019-10-26 22:51:31,"xuanwu348" <xuanwu...@163.com> 写道:

Hi buddies


Have a good weekend!
I have read some code in caffe, but I confused at "net.blobs['data'].data[...] 
= transformed_image".
The code can be find in this 
link:https://github.com/BVLC/caffe/blob/master/examples/00-classification.ipynb
import caffe
model_def = os.path.join(caffe_root, "models/bvlc_alexnet/deploy.prototxt")
model_weights = os.path.join(caffe_root, 
"models/bvlc_alexnet/bvlc_alexnet.caffemodel")
net = caffe.Net(model_def,
                model_weights,
                caffe.TEST)
net.blobs['data'].reshape(50,
                          3,
                          227,227)
net.blobs['data'].data[...] = transformed_image


1. For ellipsis, is there syntax in python like this " 
net.blobs['data'].data[...]"? I have checked it which the type is "<class 
'numpy.ndarray'>"
2. Could you provide some samples in which need to use ellipsis. 


But in python, ellipsis define as below, I did not find the relationship to 
"net.blobs['data'].data[...]":
Help on ellipsis object:


class ellipsis(object)
 |  Methods defined here:
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  __reduce__(...)
 |      helper for pickle
 |
 |  __repr__(self, /)
 |      Return repr(self).


Thanks for your help!


Best Regards








 
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to