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方法中請參閱最簡單的示例