cost2fitness
1.0.0
适用于健身价值的PYPI软件包(更少)(更好)(更好),反之亦然
pip install cost2fitness
这是包含几种转换方法的包装numpy阵列取决于量表,平均值等。但是,使用它的主要方法是从成本值(更好的是更好)转换为健身价值(更多是更好),反之亦然。您使用时可能会有所帮助
有几个简单的变压器。每个变压器是包含name字段和transform(array)的BaseTransformer类别的子类,该方法将输入数组转换为新表示形式。
清单:
ReverseByAverage ,AntiMax ,AntiMaxPercent(percent) ,Min2Zero ,Min2Value(value) ,ProbabilityView (将数据转换为概率),SimplestReverse ,AlwaysOnes (返回一系列),NewAvgByMult(new_average) ,NewAvgByShift(new_average)Divider(divider_number_or_array) (将数组分配在数字或数组上,可用于固定启动归一化)Argmax (数组中最大元素的返回位置)Prob2Class(threshold = 0.5) (将概率转换为0/1类)ToNumber (通过获取第一个元素将数组转换为一个数字)您可以使用文件中的简单逻辑来创建变压器。
import numpy as np
from cost2fitness import Min2Zero
tf = Min2Zero ()
arr_of_scores = np . array ([ 10 , 8 , 7 , 5 , 8 , 9 , 20 , 12 , 6 , 18 ])
tf . transform ( arr_of_scores )
# array([ 5, 3, 2, 0, 3, 4, 15, 7, 1, 13]) U还可以使用Pl Pipeline结合这些变压器。例如:
import numpy as np
from cost2fitness import ReverseByAverage , AntiMax , Min2Zero , Pl
pipe = Pl ([
Min2Zero (),
ReverseByAverage (),
AntiMax ()
])
arr_of_scores = np . array ([ 10 , 8 , 7 , 5 , 8 , 9 ])
# return each result of pipeline transformation (with input)
pipe . transform ( arr_of_scores , return_all_steps = True )
#array([[10. , 8. , 7. , 5. , 8. ,
# 9. ],
# [ 5. , 3. , 2. , 0. , 3. ,
# 4. ],
# [ 0.66666667, 2.66666667, 3.66666667, 5.66666667, 2.66666667,
# 1.66666667],
# [ 5. , 3. , 2. , 0. , 3. ,
# 4. ]])
# return only result of transformation
pipe . transform ( arr_of_scores , return_all_steps = False )
#array([5., 3., 2., 0., 3., 4.]) 有plot_scores函数用于绘制转换过程结果。它有参数:
scores :2D numpy数组2D numpy数组,带有结构[start_values, first_transform(start_values), second_transform(first_transform), ...] ,其中每个对象是分数的1D阵列(值/成本/fitnesses)。names : None /字符串列表,绘图标签的每个步骤的可选名称。默认值None 。kind :STR, “旁边”的可选每个新列将在以前的旁边;对于“下”,将在以前的情况下有新的地块。默认值是“旁边”。save_as : None /str,可选的文件路径来保存图。默认值None 。 代码










代码


我在这里制作了基本的神经网络工具,因为非常有必要使用一些强化学习任务使用简单的网络,但是如果您只需要预测(正向传播),则只能在1个示例中,但很多次,诸如keras之类的常见软件包工作非常慢。因此,在这些情况下使用简单的基于Numpy的软件包将更快。
使用此变压器逻辑来创建神经网络并不难。因此,该软件包将下一个神经网络层作为变压器:
激活:
SoftmaxReluLeakyRelu(alpha = 0.01)SigmoidTanhArcTanSwish(beta = 0.25)SoftplusSoftsignElu(alpha)Selu(alpha, scale)密集层工具:
Bias(bias_len, bias_array = None) - 添加bias_len的偏差。如果bias_array None ,请使用随机偏见MatrixDot(from_size, to_size, matrix_array = None)NNStep(from_size, to_size, matrix_array = None, bias_array = None) Bias如果您想更快MatrixDot创建它们并且有几种用于使用神经网络等pipeline对象的帮助者方法(当然仅用于远期传播):
pipeline对象方法:
get_shapes() - 获取nn所需数组形状的列表total_weights() - 获得整体NN的权重计数set_weights(weights) - 设置权重(作为带有所需形状的数组的列表)nn一个人功能:
arr_to_weigths(arr, shapes) - 将1D阵列arr转换为带状shapes的数组列表,将其放入set_weights方法中请参阅最简单的示例