Merapatkan Pembelajaran Mesin dengan TensorFlow: Daripada Python kepada JavaScript

Barbara Streisand
Lepaskan: 2024-10-01 06:15:29
asal
940 orang telah melayarinya

Bridging Machine Learning with TensorFlow: From Python to JavaScript

Menghidupkan Pembelajaran Mesin dengan TensorFlow

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.

Menjana Model

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
Salin selepas log masuk

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.

Membina Bahagian Belakang

Apabila anda membina model, terdapat beberapa tugas asas yang perlu anda tangani:

  • Bersihkan atau normalkan data
  • Pisah data kepada Latihan (80%) dan Ujian (20%)
  • Pilih model bersama-sama dengan tetapan seperti pengoptimum dan fungsi kehilangan
  • Latih model (sesuai)
  • Nilai model
  • Simpan model

Kod berikut memberi anda gambaran keseluruhan yang baik tentang tugasan ini, walaupun ia bukan gambaran yang lengkap. Anda boleh menyemak kod penuh di Github.

Python: Bermula dengan TensorFlow

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")
Salin selepas log masuk

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!

Menggunakan Model di Bahagian Hadapan

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
Salin selepas log masuk
  • tf_saved_model: Ini ialah format yang digunakan untuk menyimpan model.
  • model/saved_model: Ini ialah direktori tempat model disimpan semasa kod Python dilaksanakan.
  • out/public: Ini ialah direktori output tempat fail mesra hadapan disimpan. Struktur folder akan kelihatan seperti ini:
ls -la out/public

group1-shard1of1.bin
model.json
Salin selepas log masuk

Persediaan ini memudahkan anda mengakses fail yang diperlukan untuk aplikasi web anda.

Javascript: Menggunakan TensorFlowJS

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;
};
Salin selepas log masuk

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.

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan