حزمة PYPI لقيم تكلفة التحويل (أقل أفضل) لقيم اللياقة (أكثر أفضل) والعكس صحيح
pip install cost2fitness
هذه هي الحزمة التي تحتوي على عدة طرق لصفائف التحول التي تعتمد على المقاييس والمتوسطات وما إلى ذلك. ولكن الطريقة الأساسية لاستخدامها هي التحويل من قيم التكلفة (أقل أفضل) إلى قيم اللياقة (أكثر أفضل) والعكس بالعكس. يمكن أن يكون مفيدًا للغاية عند استخدامك
هناك العديد من المحولات البسيطة. كل محول هو الفئة الفرعية لفئة BaseTransformer التي تحتوي على حقل name وطريقة transform(array) التي تحول صفيف الإدخال إلى تمثيل جديد.
قائمة المراجعة:
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]) يمكن أيضًا الجمع بين هذه المحولات باستخدام خط أنابيب Pl . على سبيل المثال:
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), ...] ، حيث يكون كل كائن 1 د من الدرجات (القيم/التكاليف/اللياقة).names : None /قائمة سلسلة ، أسماء اختيارية لكل خطوة لتسميات المؤامرة. الافتراضي هو None .kind : Str ، اختياري لـ "بجانب" سيكون كل عمود جديد بجانب السابق ؛ ل "تحت" سيكون هناك مؤامرة جديدة تحت السابق. الافتراضي هو "بجانب".save_as : None /Str ، مسار الملف الاختياري لحفظ المؤامرة. الافتراضي هو None . شفرة










شفرة


لقد صنعت أدوات الشبكة العصبية الأساسية هنا لأنه من الضروري للغاية استخدام شبكات بسيطة مع بعض مهام التعلم التعزيز ، ولكن الحزم الشائعة مثل Keras تعمل بطيئة للغاية إذا كنت بحاجة إلى تنبؤ فقط (الانتشار إلى الأمام) فقط لعينة واحدة ولكن عدة مرات. لذلك سيكون من الأسرع استخدام حزم بسيطة تستند إلى Numpy لهذه الحالات.
لم يكن من الصعب للغاية استخدام منطق Transformers لإنشاء الشبكات العصبية. لذلك تحتوي هذه الحزمة على طبقات الشبكة العصبية التالية كمحولات:
التنشيط :
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) - إنه MatrixDot Bias معًا ، إذا كنت تريد إنشاءها بشكل أسرع وهناك العديد من أساليب المساعدين لاستخدام كائن pipeline مثل الشبكة العصبية (فقط للانتشار الأمامي بالطبع):
أساليب كائنات pipeline :
get_shapes() - للحصول على قائمة بأشكال الصفيف المطلوب لـ NNtotal_weights() - احصل على عدد الأوزان لـ NN بشكل عامset_weights(weights) - تعيين الأوزان (كقائمة من المصفوفات مع الأشكال المطلوبة) لـ NNوظائف وحدها :
arr_to_weigths(arr, shapes) -يحول 1D-Array arr إلى قائمة المصفوفات بأشكال shapes لوضعها في طريقة set_weightsانظر أبسط مثال