コード例 #1
0
 def layer_starting_weights(self):
     random_weights = np.append(
         np.random.normal(loc=0, scale=1, size=self.n_scaling_weights),
         np.random.uniform(high=4 * np.pi,
                           size=self.n_rotation_weights +
                           self.n_entangling_weights))
     return random_weights
コード例 #2
0
def successive_params(par1, par2):
    """Return a list of parameter configurations, successively walking from
    par1 to par2 coordinate-wise."""
    par1_flat = np.fromiter(_flatten(par1), dtype=float)
    par2_flat = np.fromiter(_flatten(par2), dtype=float)
    walking_param = []
    for i in range(len(par1_flat) + 1):
        walking_param.append(unflatten(np.append(par2_flat[:i], par1_flat[i:]), par1))
    return walking_param
コード例 #3
0
def gen_data(thresh):
    #thresh = 0.3

    X = np.array([])
    Y = np.array([])
    ctr = 0 # num valid data pts
    maxval = 0.0
    minval = 0.0

    np.random.seed(0)

    while ctr < 40:
        x = np.random.rand(N) * 2 * np.pi
        for pair in itertools.combinations(range(N), r=2):
            x = np.append(x, (np.pi - x[pair[0]]) * (np.pi - x[pair[1]]))

        y = []
        for i in range(N):
            y.append(data_label(x, i=i))

        y_prod = reduce((lambda x, y: x * y), y)

        #print(y, y_prod)
        if (y_prod > maxval):
            maxval = y_prod
            print("new max separation: ", maxval)
        elif (y_prod < minval):
            minval = y_prod
            print("new min separation: ", minval)

        if y_prod > thresh:
            Y = np.append(Y, +1)
            X = np.append(X, x)
            ctr += 1
            #print("+1")
        elif y_prod < -1 * thresh:
            Y = np.append(Y, -1)
            X = np.append(X, x)
            ctr += 1
            #print("-1")

    X = X.reshape(-1, 3)
    print("Data: ", list(zip(X, Y)))
    return X, Y
コード例 #4
0
ファイル: utils.py プロジェクト: cirKITers/masKIT
def pad_data(data: np.ndarray, axis: int, padding: int) -> np.ndarray:
    """
    Function pads 0 data to the end of the given axis.

    :param data: The data to pad 0 data to
    :param axis: Axis to pad on
    :param padding: How many elements to pad
    """
    size = data.shape[0]
    if size == 0:
        return data.reshape((size, data.shape[axis] + padding))
    return np.append(data, [[0] * padding for _ in range(size)], axis)
コード例 #5
0
 def layer_starting_weights(self):
     random_weights = np.append(
         np.random.normal(loc=0, scale=1, size=self.n_qubits),
         np.random.uniform(low=0, high=4 * np.pi, size=self.n_qubits))
     return random_weights
コード例 #6
0
 def _feature_padding(self, features):
     res = features
     for i in range(self.n_repeats_per_layer-1):
         res = np.append(res, features)
     return np.append(res, np.zeros(self.padding_width))