首页 > 后端开发 > Python教程 > 连接机器学习与 TensorFlow:从 Python 到 JavaScript

连接机器学习与 TensorFlow:从 Python 到 JavaScript

Barbara Streisand
发布: 2024-10-01 06:15:29
原创
990 人浏览过

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
登录后复制

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")
登录后复制

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
登录后复制
  • 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
登录后复制

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;
};
登录后复制

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 dengan mudah ke bahagian hadapan untuk menjalankan ramalan.

虽然机器学习是一个广阔的领域,需要大量知识,但像 TensorFlow 这样的工具有助于弥合软件和机器学习开发人员之间的差距。对于那些希望将 ML 融入到他们的项目中的人来说,这让旅程变得更加顺利!

以上是连接机器学习与 TensorFlow:从 Python 到 JavaScript的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板