我正在填充两个数组,field_in_k_space_REAL并且field_in_k_space_IMAGINARY,使用从高斯分布中提取的值,在我对数组进行逆变换时,注意尊重对称性以获得真实场.这是代码:
field_in_k_space_REAL = zeros(n, float)
field_in_k_space_IMAGINARY = zeros(n, float)
field_in_k_space_REAL[0] = 0.0
for i in range(1, int(n/2+1)):
field_in_k_space_REAL[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))
x = range(int(n/2+1), int(n))
y = range(1, int(n/2))
zipped = zip(x, y)
for j, j2 in zipped:
field_in_k_space_REAL[j] = field_in_k_space_REAL[j-2*j2]
field_in_k_space_IMAGINARY[0] = 0.0
for i in range(1, int(n/2)):
field_in_k_space_IMAGINARY[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))
field_in_k_space_IMAGINARY[n/2] = 0.0
for j, j2 in zipped:
field_in_k_space_IMAGINARY[j] = - field_in_k_space_IMAGINARY[j-2*j2]
print 'field_k', field_in_k_space_REAL
Run Code Online (Sandbox Code Playgroud)
但我一直有以下错误:
field_in_k_space_REAL[0] = 0.0
IndexError: index 0 is …Run Code Online (Sandbox Code Playgroud) 下面的代码取自https://github.com/anarn2/HierarchicalAttentionNetworks/blob/master/HierarchicalAttn.py,并进行了一些细微的调整。尽管我理解该错误的含义,但我无法弄清楚它是如何在以下代码中蔓延以及如何纠正它的。我已经被困在这个问题上很长一段时间了,非常感谢一些帮助。谢谢!
(这是整个代码)
maxlen = 100
max_sentences = 15
max_words = 20000
embedding_dim = 100
validation_split = 0.2
reviews = []
labels = []
texts = []
glove_dir = "./glove.6B"
embeddings_index = {}
# class defining the custom attention layer
class HierarchicalAttentionNetwork(Layer):
def __init__(self, attention_dim):
self.init = initializers.get('normal')
self.supports_masking = True
self.attention_dim = attention_dim
super(HierarchicalAttentionNetwork, self).__init__()
def build(self, input_shape):
assert len(input_shape) == 3
self.W = K.variable(self.init((input_shape[-1], self.attention_dim)))
self.b = K.variable(self.init((self.attention_dim,)))
self.u = K.variable(self.init((self.attention_dim, 1)))
self.trainable_weights = [self.W, self.b, self.u] …Run Code Online (Sandbox Code Playgroud)