反转函数获取原始输入值

问题描述 投票:0回答:1

我有以下

get_angles
函数,可以从
input_features
创建角度。该函数返回的特征用于训练变分量子电路。

def get_angles(x):
    beta0 = 2 * np.arcsin(np.sqrt(x[1] ** 2) / np.sqrt(x[0] ** 2 + x[1] ** 2 + 1e-12))
    beta1 = 2 * np.arcsin(np.sqrt(x[2] ** 2) / np.sqrt(x[2] ** 2 + x[2] ** 2 + 1e-12))
    beta2 = 2 * np.arcsin(np.linalg.norm(x[2:]) / np.linalg.norm(x))
    
    return np.array([beta2, -beta1 / 2, beta1 / 2, -beta0 / 2, beta0 / 2])

因此:

input_features = [10, 20, 30, 40, 50]`

# Transform the features
features = np.array(get_angles(input_features))

现在,我想通过获取最终的

features
值并将其转换回
input_features
函数中使用的
get_angles
值来反转此操作。有没有办法反转上面定义的
get_angles
函数?

提前致谢。

期望通过

input_features
函数运行最终的
features
来接收
get_reverse_angles
,我尝试了
get_reverse_angles
函数的多种变体,例如下面的函数,但没有成功。

def get_reverse_angles(angles):
    # Extract the angles
    beta2, neg_beta1, pos_beta1, neg_beta0, pos_beta0 = angles
    
    # Solve for x using trigonometric equations
    x0 = np.sqrt(2)
    x1 = np.sin(beta2 / 2) * np.sqrt(2)
    x2 = np.sin(pos_beta1 / 2) * np.sqrt(2)
    x3 = np.sin(pos_beta0 / 2) * np.sqrt(2)
    x4 = np.sin(neg_beta0 / 2) * np.sqrt(2)
    
    # Compute x0 using the first equation
    x0 = np.sqrt(x1 ** 2 + x2 ** 2 + x3 ** 2 + x4 ** 2)
    
    # Return the values of the reversed operation
    return np.array([x0, x1 * x0, x2 * x0, x3 * x0, x4 * x0])

get_reverse_angles
函数返回 [ 1.79350156 2.41835701 0.97063605 1.33346136 -1.33346136],而不是预期的 [10 20 30 40 50]
input_features

python dataframe machine-learning transformation trigonometry
1个回答
0
投票

尝试这个选项:

def inverse_get_angles(features):
    beta0 = 2 * np.sin(features[4] / 2)
    beta1 = 2 * np.sin(-features[2] / 2)
    beta2 = 2 * np.sin(features[0] / 2)

    x0 = np.sin(beta0) * np.sqrt(np.sum([x ** 2 for x in [10, 20, 30, 40, 50]]))
    x1 = np.sin(beta1) * np.sqrt(np.sum([x ** 2 for x in [30, 30, 40, 50]]))
    x2 = np.sin(beta2) * np.sqrt(np.sum([x ** 2 for x in [40, 50]]))

    return [x0, x1, x1, x2, x2]


inverse_input_features = inverse_get_angles(features)
print(input_features)
© www.soinside.com 2019 - 2024. All rights reserved.