Paket PYPI untuk nilai biaya konversi (lebih sedikit lebih baik) untuk nilai kebugaran (lebih banyak lebih baik) dan sebaliknya
pip install cost2fitness
Ini adalah paket yang berisi beberapa metode untuk transformasi array numpy tergantung pada skala, rata -rata dan sebagainya. Tetapi cara utama untuk menggunakannya adalah konversi dari nilai biaya (lebih sedikit lebih baik) ke nilai kebugaran (lebih banyak lebih baik) dan sebaliknya. Ini bisa sangat membantu saat Anda menggunakan
Ada beberapa transformer sederhana. Setiap transformator adalah subclass dari kelas BaseTransformer yang berisi bidang name dan metode transform(array) yang mengubah array input menjadi representasi baru.
Daftar Periksa:
ReverseByAverage ,AntiMax ,AntiMaxPercent(percent) ,Min2Zero ,Min2Value(value) ,ProbabilityView (mengonversi data menjadi probabilitas),SimplestReverse ,AlwaysOnes (mengembalikan array satu),NewAvgByMult(new_average) ,NewAvgByShift(new_average)Divider(divider_number_or_array) (membagi array pada nomor atau array, berguna untuk normalisasi start tetap)Argmax (Mengembalikan posisi elemen maksimum dalam array)Prob2Class(threshold = 0.5) (untuk mengonversi probabilitas menjadi kelas 0/1)ToNumber (mengonversi array ke satu nomor dengan mendapatkan elemen pertama)Anda dapat membuat transformator Anda menggunakan logika sederhana dari file.
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]) Anda juga dapat menggabungkan transformator ini menggunakan pipa Pl . Misalnya:
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.]) Ada fungsi plot_scores untuk memplot hasil proses transformasi. Itu memiliki argumen:
scores : Array Numpy Numpy 2D Numpy Array dengan Struktur [start_values, first_transform(start_values), second_transform(first_transform), ...] , di mana setiap objek adalah skor 1D-array (nilai/biaya/kebugaran).names : None /String List, nama opsional untuk setiap langkah untuk label plot. Standarnya None .kind : STR, opsional untuk 'di samping' setiap kolom baru akan di samping sebelumnya; Untuk 'Under' akan ada plot baru di bawah sebelumnya. Standarnya adalah 'di samping'.save_as : None /str, jalur file opsional untuk menyimpan plot. Standarnya None . Kode










Kode


Saya telah membuat alat jaringan saraf dasar di sini karena sangat penting untuk menggunakan jaringan sederhana dengan beberapa tugas pembelajaran penguatan , tetapi paket umum seperti keras bekerja sangat lambat jika Anda hanya perlu prediksi (propagasi maju) hanya untuk 1 sampel tetapi berkali -kali. Jadi akan lebih cepat menggunakan paket berbasis numpy sederhana untuk kasus-kasus ini.
Tidak terlalu sulit untuk menggunakan logika Transformers ini untuk membuat jaringan saraf. Jadi paket ini memiliki lapisan jaringan saraf berikutnya sebagai Transformers:
Aktivasi :
SoftmaxReluLeakyRelu(alpha = 0.01)SigmoidTanhArcTanSwish(beta = 0.25)SoftplusSoftsignElu(alpha)Selu(alpha, scale)Alat Lapisan Padat :
Bias(bias_len, bias_array = None) - untuk menambahkan bias dengan panjang bias_len . Jika bias_array None , gunakan bias acakMatrixDot(from_size, to_size, matrix_array = None)NNStep(from_size, to_size, matrix_array = None, bias_array = None) - itu MatrixDot dan Bias bersama, jika Anda ingin membuatnya lebih cepat Dan ada beberapa metode pembantu untuk menggunakan objek pipeline seperti Neural Network (hanya untuk propagasi ke depan tentu saja):
Metode objek pipeline :
get_shapes() - Untuk mendapatkan daftar bentuk array yang dibutuhkan untuk NNtotal_weights() - Dapatkan penghitungan bobot untuk keseluruhan NNset_weights(weights) - set bobot (sebagai daftar array dengan bentuk yang diperlukan) untuk nnSendiri fungsi :
arr_to_weigths(arr, shapes) -Mengonversi arr 1D-Array menjadi daftar array dengan shapes bentuk untuk memasukkannya ke dalam metode set_weightsLihat contoh paling sederhana