Rumah > Artikel > pembangunan bahagian belakang > Merapatkan Pembelajaran Mesin dengan TensorFlow: Daripada Python kepada JavaScript
Sebagai pembangun JavaScript, menyelami Pembelajaran Mesin tidaklah menakutkan seperti yang disangka. Walaupun secara teknikalnya mungkin untuk mengendalikan segala-galanya dengan pakej Node.js, ekosistem Python ML terlalu kaya dan mantap untuk diabaikan. Selain itu, Python adalah hebat untuk digunakan. Jadi, masuk akal untuk menggunakan Python untuk mengangkat berat di bahagian belakang. Setelah anda menyediakan model anda, anda boleh mengeksportnya ke format mesra hadapan dan memuatkannya pada klien untuk menjalankan ramalan.
Dalam siaran ini, kami akan membina model untuk meramalkan populariti artis berdasarkan bilangan pengikut Twitter mereka.
Langkah pertama ialah mendapatkan set data. Untuk projek ini, kami akan menggunakan fail artists.csv yang kelihatan seperti ini:
twitter_followers,popularity,handle 111024636,94,justinbieber 107920365,91,rihanna 106599902,89,katyperry 95307659,97,taylorswift13 66325495,87,selenagomez 66325135,71,selenagomez 60943147,83,jtimberlake 54815915,82,britneyspears 53569307,85,shakira
Seperti yang anda lihat, terdapat dua nilai utama di sini: twitter_followers dan populariti. Ini menetapkan kami dengan baik untuk Model Jujukan, dengan x akan menjadi twitter_followers dan y akan menjadi populariti.
Model Jujukan ialah salah satu pilihan paling mudah untuk membina model. Walaupun pilihan akhirnya bergantung pada kes penggunaan tertentu, saya mengekalkannya dengan mudah dan kekal dengan pendekatan ini buat masa ini.
Apabila anda membina model, terdapat beberapa tugas asas yang perlu anda tangani:
Kod berikut memberi anda gambaran keseluruhan yang baik tentang tugasan ini, walaupun ia bukan gambaran yang lengkap. Anda boleh menyemak kod penuh di Github.
def get_model(x, y): x_normalized = layers.Normalization( axis=None, ) x_normalized.adapt(np.array(x)) model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)]) model.compile( optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1), loss="mean_squared_error", ) model.fit( x, y, epochs=2, verbose=0, validation_split=0.2, ) return model def main: train_features, test_features, train_labels, test_labels = split_data(dataset) model = get_model( train_features["twitter_followers"], train_labels, ) test_loss = model.evaluate( test_features["twitter_followers"], test_labels, verbose=2 ) model.export("./saved_model")
Seperti yang anda lihat, kod Python agak mudah. Terdapat fungsi utama yang mengendalikan pembahagian data, mendapatkan model, menilainya dan akhirnya menyimpannya.
Ringkasnya, ini adalah langkah penting untuk mencipta model. Tetapi mari kita nyata: membina model yang benar-benar berfungsi ialah seni dan sains. Matlamat saya di sini hanyalah untuk menunjukkan betapa mudahnya untuk bermula dengan Python. Walau bagaimanapun, banyak yang perlu dilakukan untuk membuat model yang berprestasi baik—seperti mempunyai set data yang kukuh, membersihkan dan menormalkan data anda, memilih model dan tetapan yang betul serta mempunyai kuasa pengkomputeran untuk melatihnya. Semua tugasan ini memerlukan pelaburan masa dan usaha yang serius!
Sekarang model kami telah dilatih dan disimpan, tiba masanya untuk membawanya ke bahagian hadapan. Langkah ini ialah tempat kami akan memuatkan model dalam format mesra web, jadi kami boleh menjalankan ramalan terus dalam penyemak imbas. Sama ada anda menggunakan TensorFlow.js atau pustaka lain, menyepadukan pembelajaran mesin ke dalam apl web anda membuka dunia kemungkinan. Mari kita mendalami cara melakukannya!
TensorFlow menawarkan pakej npm yang dipanggil tensorflowjs_converter yang membantu menukar model yang disimpan kepada JSON dan binari.
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ls -la out/public group1-shard1of1.bin model.json
Persediaan ini memudahkan anda mengakses fail yang diperlukan untuk aplikasi web anda.
Anda boleh menyemak kod penuh di Github.
const model = await tensorflow.loadGraphModel("model.json"); const getPopularity = (followers) => { const followers = 1_000; const normalized = followers; const x = tensorflow.tensor(normalized).reshape([-1, 1]); const result = model.predict(x); const values = result.arraySync(); const y = values[0][0].toFixed(2) * 100; const popularity = y; return popularity; };
Seperti yang dinyatakan sebelum ini, model ini bertujuan untuk "meramalkan populariti" berdasarkan bilangan pengikut Twitter. Walaupun ia mungkin kelihatan seperti contoh mudah, ia menunjukkan cara menjana model pada bahagian belakang dan menggunakannya dengan berkesan pada bahagian hadapan.
Lihat cara getPopularity memproses input sedikit, tetapi baris utama ialah model.predict(x), yang menggunakan model untuk meramalkan nilai (y) berdasarkan input x.
Pergi ke halaman demo dan cuba beberapa pemegang Twitter. Ini cara yang menyeronokkan untuk melihat cara model meramalkan populariti berdasarkan kiraan pengikut.
TensorFlow ialah perpustakaan hebat yang menyediakan alatan untuk pembangunan bahagian belakang dan bahagian hadapan. Mana-mana pembangun JavaScript boleh menyelami mencipta model menggunakan Python atau bahasa yang serupa, kemudian mengimport model itu ke bahagian hadapan dengan mudah untuk menjalankan ramalan.
Walaupun pembelajaran mesin merupakan bidang yang luas yang memerlukan banyak pengetahuan, alatan seperti TensorFlow membantu merapatkan jurang antara perisian dan pembangun pembelajaran mesin. Ia menjadikan perjalanan lebih lancar bagi mereka yang ingin memasukkan ML ke dalam projek mereka!
Atas ialah kandungan terperinci Merapatkan Pembelajaran Mesin dengan TensorFlow: Daripada Python kepada JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!