cpuW = np.ones(dimW, dtype=np.float32) else: cpuI = np.random.uniform(-1.0, 1.0, dimI).astype(dtype).astype(np.float32) cpuE = np.random.uniform(-1.0, 1.0, dimO).astype(dtype).astype(np.float32) cpuW = np.random.uniform(-1.0, 1.0, dimW).astype(dtype).astype(np.float32) devI = ng.array(cpuI, dtype=dtype) devE = ng.array(cpuE, dtype=dtype) devW = ng.array(cpuW, dtype=dtype) devO = ng.empty(dimO, dtype=dtype) devB = ng.empty(dimI, dtype=dtype) devU = ng.empty(dimW, dtype=dtype) if Nin: ng.batched_dot(devW, devI, devO, repeat=repeat, size=size) # fprop ng.batched_dot(devW.T, devE, devB, repeat=repeat, size=size) # bprop ng.batched_dot(devE, devI.T, devU, repeat=repeat, size=size) # update else: ng.batched_dot(devI, devW.T, devO, repeat=repeat, size=size) # fprop ng.batched_dot(devE, devW, devB, repeat=repeat, size=size) # bprop ng.batched_dot(devE.T, devI, devU, repeat=repeat, size=size) # update if cpu: cpuO = np.empty(dimO, dtype=np.float32) cpuB = np.empty(dimI, dtype=np.float32) cpuU = np.zeros(dimW, dtype=np.float32) if Nin: for i in range(X):