Theano vektörünün __getitem__
yönteminin bir bağımsız değişken olarak bir tuple beklediğini düşünüyorum! Böyle: Burada print a[0,2]
class Vect (object):
def __init__(self,data):
self.data=list(data)
def __getitem__(self,key):
return self.data[key[0]:key[1]+1]
a=Vect('hello')
print a[0,2]
a
istisna yükseltecektir sıradan bir listesi:
>>> a=list('hello')
>>> a[0,2]
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: list indices must be integers, not tuple
Ama burada __getitem__
yöntem farklıdır ve bir argüman olarak bir demet kabul eder.
class Vect (object):
def __init__(self,data):
self.data=list(data)
def __getitem__(self,key):
return self.data[0:key[1]+1]+list(key[0].indices(key[1]))
a=Vect('hello')
print a[:,2]
yaklaşık None
konuşan yanı düz Python dizine eklerken, bu kullanılabilir::
Sen :
olarak böyle __getitem__
için :
işareti geçebilir dilim demektir
>>> 'hello'[None:None]
'hello'
olarak elde, ama buna sizinle ilgilenen sözdizimi tanıtır numpy uyumlu entegrasyon vardır görünüyor olabilir: http: // docs. scipy.org/doc/numpy/reference/arrays.indexing.html –
Ondrej Slinták doğru. Https://github.com/Theano/Theano'da kodun üzerinden bakmak, Theano tensörleri NumPy dizileri olarak uygulanır ve lstm.py, slice() öğesinin 2 veya 3 boyutlu bir NumPy dizisi döndürdüğünü gösterir. NumPy.array dilimlemesi ile Yok, bir diziye bir eksen (boyut) ekleyen newaxis nesnesiyle aynı değildir, bu nedenle m_ [:, Yok], m_ öğesinin her öğesini bir dizide örter; np olarak ithalat numpy verilen; a = np.array ([[1,2], [3,4]]), sonra bir [:, Yok] np.array ([[[1, 2]], [[3, 4]]]) –
Temel bir öğretici dersi ve ardından Theano öğreticisini takip ettiğinizden emin olun. Bu çok soruya cevap verecektir. – eickenberg