Panduan Langkah-demi-Langkah untuk Menerapkan Model ML Menggunakan Streamlit
Diterbitkan: 2020-12-07Daftar isi
pengantar
Sebagian besar penggemar Pembelajaran Mesin mendaftarkan diri untuk beberapa kursus dan kurikulum untuk memulai AI dan ML. Kursus ini mencakup banyak hal mendasar dan dengan rapi memandu pelajar untuk membangun dan melatih model ML yang canggih.
Tapi satu hal yang sebagian besar pemula berjuang dengan adalah bagian penyebaran. Proyek pembelajaran mesin tidak dapat dibiarkan apa adanya tanpa aplikasi interaktif di sekitarnya. Untuk memungkinkan pengguna berinteraksi dengan mudah dengan model atau bahkan untuk memamerkan proyek kami, kami perlu membungkusnya ke dalam aplikasi web, aplikasi android, atau semacam struktur API menggunakan layanan cloud.
Ada berbagai cara untuk membuat pembungkus ini untuk model kami, tetapi dalam artikel ini, saya akan fokus pada bagaimana Anda dapat menggunakan Streamlit sebagai solusi untuk masalah ini dan mengapa saya menganggapnya sebagai alat yang hebat.
Artikel ini akan memiliki panduan langkah demi langkah untuk membangun proyek ML dan membuat platform aplikasi web untuknya menggunakan Streamlit. Proyek yang akan kami bangun adalah model Prediksi Harga Rumah California. Situs akan menjadi dinamis dan hyperparameter seperti kecepatan belajar, jumlah neuron, dll. dapat diubah dan dicoba langsung melalui aplikasi web.
Jika Anda maju dengan membangun aplikasi web seperti itu menggunakan beberapa kerangka kerja seperti Flask atau Django, saya hampir yakin akan membutuhkan banyak waktu untuk membangun UI itu terlebih dahulu, dan kemudian ada masalah lain untuk menghostingnya di server sehingga itu dapat diakses oleh semua orang.
Dan di sini muncul pertanyaan utama, 'Mengapa penggemar Machine Learning harus membuang waktu mereka untuk mempelajari beberapa kerangka kerja UI padahal mereka dapat menggunakan waktu berharga itu untuk belajar membangun model yang lebih baik?'

Akan ada banyak topik yang dibahas di sini tentang cara menggunakan Streamlit untuk proyek Anda. Jangan ragu untuk melompat ke bagian mana pun yang ingin Anda ketahui lebih lanjut.
- Mengapa Streamlit?
- Membangun model ML dasar
- Menambahkan Streamlit yang menggunakan sihir
- Menerapkan aplikasi web Streamlit
- Kesimpulan
Mengapa Streamlit?
Streamlit membuatnya sangat mudah dan cepat bagi kami untuk membangun aplikasi web Machine Learning. Cara lain yang tersedia untuk mengembangkan pembungkus seperti itu untuk model ML sangat tidak nyaman.
Flask adalah kerangka kerja python yang memungkinkan pengguna untuk mengembangkan aplikasi web dan menyebarkannya menggunakan bahasa python. Ini membutuhkan pengetahuan yang baik tentang python dan juga kita perlu menginvestasikan waktu untuk mempelajarinya. Bahkan setelah itu, tidak mudah mengembangkan aplikasi web jika dibandingkan dengan Streamlit.
Django adalah kerangka kerja berbasis Python lainnya untuk pengembangan web. Dapat dikatakan bahwa ini adalah versi Flask yang lebih baik dan kompleks. Dibutuhkan banyak waktu khusus untuk mempelajari kerangka kerja ini dan akhirnya membangun aplikasi web dengan menggunakannya tidak secepat yang kita inginkan.
Tensorflow.js adalah cara yang sangat bagus untuk menyimpan model yang kompatibel dengan platform web dan kemudian model ini dapat digunakan untuk membuat aplikasi web. Banyak implementasi kompleks model ML dan arsitektur tingkat tinggi yang belum didukung oleh Tensorflow.js. Ada banyak model yang akan berfungsi dengan Python dan mungkin tidak berfungsi pada Javascript di pustaka Tensorflow.js.
Seperti yang saya katakan sebelumnya, kita tidak perlu membuang waktu untuk mempelajari kerangka kerja ini dan sebagai gantinya belajar bagaimana membangun model ML yang baik. Dan di sinilah Streamlit muncul. Ini adalah cara termudah dan tercepat untuk mengembangkan aplikasi web. Aplikasi web yang dibuat menggunakan Streamlit memiliki elemen UI yang bagus dan sangat mudah digunakan.
Untuk mendukung klaim saya tentang Streamlit sebagai cara termudah dan tercepat untuk membangun aplikasi web ML, izinkan saya berbagi dengan Anda bagaimana saya menemukan kerangka kerja ini. Saya sedang belajar bagaimana membangun GAN dan menggunakannya untuk menghasilkan wajah buatan, mengubah sketsa hitam putih menjadi yang berwarna-warni, dan implementasi semacam itu.
Model bekerja dengan baik di notebook Jupyter tetapi saya ingin membaginya dengan orang lain. Saya mulai mencari kerangka kerja untuk membangun aplikasi dan meng-host model, tetapi saya tidak ingin membuang waktu saya untuk mempelajari kerangka kerja lain karena saya ingin menjelajahi implementasi GAN lainnya.
Saya memeriksa semua sumber daya alternatif yang saya bicarakan di artikel ini sebelumnya. Model generator yang digunakan dalam proyek pembuatan Sketch-To-Color sedikit rumit. Ini adalah model arsitektur U-Net dan mengharuskan Anda untuk melewati koneksi.
Karena kerumitannya yang tinggi, saya tidak dapat mengonversi model akhir untuk Javascript menggunakan Tensorflow.js. Mempelajari Flask atau Django dari awal bukanlah pilihan bagi saya, jadi saya mulai mencari beberapa kerangka kerja atau pustaka lain.
Saat itulah saya menemukan Streamlit. Dalam sebuah artikel oleh Adrien Treuille, dia menunjukkan bagaimana dia membangun aplikasi web yang luar biasa untuk TL-GAN di bawah 13 baris kode. Ini semua mungkin hanya karena Streamlit.
Dokumentasi di situs resmi mereka juga sangat tepat dan membantu. Saya mencoba membuat aplikasi web Streamlit untuk model Sketch to Color GANs saya dan itu luar biasa. Saya hanya perlu menambahkan 12 baris kode ke kode python yang ada. Inilah mengapa saya akhirnya melanjutkan dengan menjelajahi Streamlit dan membangun proyek lain dengan menggunakannya.
Membangun Model ML Dasar
Seperti yang dinyatakan sebelumnya, kita akan melihat masalah Prediksi Harga Rumah California untuk contoh ini. Pertama-tama, mari kita lihat bagaimana kita biasanya membuat model untuk ini. Ini adalah masalah regresi.
Pertama, kami akan mengimpor perpustakaan yang diperlukan untuk model ML sederhana kami. Di sini kita akan menggunakan TensorFlow, pandas, dan NumPy.
impor tensorflow sebagai tf
impor numpy sebagai np
impor panda sebagai pd
Sekarang, kita akan menggunakan kumpulan data dari Scikit-Learn untuk mengunduh kumpulan data perumahan California.
dari sklearn.datasets impor fetch_california_housing
perumahan = fetch_california_housing()
Selanjutnya, kita perlu membagi data yang dimuat menjadi rangkaian kereta, validasi, dan pengujian. Ada banyak metode yang tersedia untuk melakukan ini. Kami akan menggunakan fungsi train_test_split yang tersedia di perpustakaan Scikit-Learn. Menggunakannya dua kali akan membagi dataset menjadi 3 set kereta, validasi, dan tes.
dari sklearn.model_selection impor train_test_split
X_train_full, X_test, y_train_full, y_test = train_test_split(
perumahan.data, perumahan.target
)
X_train, X_valid, y_train, y_valid = train_test_split(
X_train_full, y_train_full
)
Data yang tersedia bagi kami memiliki nilai bujur dan lintang dari setiap entri. Untuk memvisualisasikan ini dengan lebih baik, kita dapat membuat plot pencar pada peta. Untuk menggunakan peta, kami akan mengimpor perpustakaan Altair .
Impor altair sebagai alt
peta_data = pd.DataFrame(
X_kereta api,
kolom=[
'Medi Inc',
'Umur Rumah',
'AveRooms',
'AveBedrms',
'Populasi',
'AveOccup',
'Garis Lintang',
'garis bujur'
])
titik tengah = (np.average(map_data[“latitude”]), np.average(map_data[“longitude”]))
st.write(pdk.Deck(
map_style="mapbox://styles/mapbox/light-v9″,
initial_view_state={
"lintang": titik tengah[0],
"bujur": titik tengah[1],
"memperbesar": 6,
"nada": 75,
},
lapisan=[
pdk.Lapisan(
"Lapisan segi enam",
data=data_peta,
get_position=[“bujur”, “lintang”],
jari-jari = 1000,
elevasi_skala=4,
ketinggian_rentang=[0, 10000],
dapat dipilih=Benar,
diekstrusi = Benar,
),
],
))
Data yang kami miliki bersama kami sekarang tidak diproses dengan baik untuk model. Kita perlu melakukan preprocessing untuk mendapatkan hasil yang lebih baik. Pertama-tama, kita perlu menormalkan nilai karena sebagian besar model Pembelajaran Mesin bekerja paling baik ketika data berada dalam rentang nilai yang kecil. Untuk ini, kita akan menggunakan kelas StandardScaler dari perpustakaan sklearn.
dari sklearn.preprocessing impor StandardScaler
penskala = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_valid = scaler.transform(X_valid)
X_test = scaler.transform(X_test)
Setelah menyiapkan data, sekarang kita akan membuat model. Model ini akan menjadi jaringan saraf dengan jumlah neuron tertentu di lapisan input pertama dan satu neuron di lapisan terakhir karena merupakan masalah regresi. Hal ini dapat dicapai dengan menggunakan library TensorFlow.
impor tensorflow sebagai tf
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(n_neurons, activation='relu', input_shape=X_train.shape[1:]),
tf.keras.layers.Dense(1)
])
Di TensorFlow, kita harus mengkompilasi model setelah membangunnya. Di sini kita harus menyebutkan fungsi loss yang akan kita gunakan dan juga pengoptimal yang kita inginkan. Kami akan menggunakan fungsi kehilangan kesalahan kuadrat rata-rata dan pengoptimal SGD dengan tingkat pembelajaran tertentu.
model.kompilasi(
rugi='mean_squared_error',
pengoptimal=tf.keras.optimizers.SGD(l_rate)
)
Semuanya ada di tempatnya sekarang. Yang harus kita lakukan adalah melatih modelnya. Di TensorFlow, ini dapat dilakukan hanya dengan memanggil metode fit(). Kita dapat menyimpan semua log dalam sebuah variabel, history .
sejarah = model.fit(
X_kereta api,
y_kereta api,
zaman=n_zaman,
validasi_data=(X_valid, y_valid)
)
Setelah pelatihan, kami juga dapat mengevaluasi akurasi dan kehilangan model kami dengan menggunakan metode evaluasi().
evaluasi = model.evaluate(X_test, y_test)
Sekarang, jika kita ingin memprediksi harga rumah dengan menggunakan model ini, kita bisa melakukannya dengan memanggil metode, predict() .
X_baru = X_test[:3]
prediksi = model.predict(X_new)
Ini adalah bagaimana Anda dapat membangun model prediksi harga rumah sederhana menggunakan TensorFlow, scikit-learn, dan pandas. Tapi masalahnya seperti yang Anda lihat adalah bahwa tidak ada cara untuk menunjukkan model ini kepada pengguna lain di mana mereka dapat berinteraksi dengannya dan ini hanya model di dalam Notebook Jupyter. Jadi sekarang mari tambahkan keajaiban dengan Streamlit!
Baca Juga: Ide Proyek Pembelajaran Mesin
Menambahkan Keajaiban Menggunakan Streamlit
Untuk membuat aplikasi web Machine Learning, Anda hanya perlu menambahkan beberapa baris kode untuk panggilan fungsi Streamlit dan hanya itu. Anda tidak memerlukan HTML, CSS, atau Javascript. Hanya python murni!
Ya, Anda membacanya dengan benar. Anda tidak perlu khawatir tentang hal lain. Cukup instal Streamlit ke sistem Anda dan Anda akan siap untuk pergi. Gunakan perintah berikut di terminal Anda:
pip install streamlit
Anda dapat menggunakan perintah berikut untuk menjelajahi aplikasi hello world mereka. Ini adalah contoh bagus tentang tampilan aplikasi web menggunakan Streamlit.:
halo ringan
Setelah menginstal Streamlit secara lokal dan menambahkan garis ajaib ke kode, Anda hanya perlu menjalankan perintah berikut untuk menjalankan aplikasi secara lokal:
streamlit jalankan file_name.py
Jadi pertanyaannya sekarang adalah, "Apa baris kode ajaib itu?" Mereka cukup sederhana. Pertama-tama saya akan menjelaskan fungsi dasar yang digunakan di Streamlit dan kemudian saya akan menunjukkan kodenya sehingga Anda dapat langsung menghubungkannya dengan contoh.
Sebelum hal lain, kami akan mengimpor perpustakaan streamlit dengan menggunakan baris kode berikut:
impor streamlit sebagai st
Fitur penting pertama adalah Anda cukup mengetikkan apa pun dalam 3 tanda kutip ganda, itu hanya menunjukkan teks seperti yang ada di aplikasi web. Ini mendukung sintaks bahasa penurunan harga. Jadi, Anda dapat melakukan banyak hal seperti header, poin-poin, tabel, dan banyak lagi. Anda juga dapat menggunakan fungsi st.write() sebagai ganti notasi ini. Ini memiliki fungsi yang sama.
Berikutnya adalah fungsi with st.echo() :. Ini pada dasarnya mengeksekusi kode python yang tertulis di dalamnya dan kemudian juga menampilkannya di aplikasi web. Dengan cara ini kita dapat membangun aplikasi web yang menunjukkan bagaimana aplikasi itu dibuat.
st.empty() adalah area yang dicadangkan untuk beberapa konten dinamis nanti.
st.spinner() menunjukkan elemen pemuatan ketika ada penundaan dalam mengeksekusi sepotong kode.
st.success() menunjukkan pesan dalam warna hijau. Ini memiliki aspek desain yang bagus dari dialog sukses.
st.sidebar() menampilkan konten di sidebar ke kiri secara default.
st.sidebar.slider() menyediakan penggeser di bilah sisi untuk memilih nilai dari rentang angka yang diberikan. st.sidebar.selectbox() memungkinkan Anda untuk memilih nilai dari daftar yang diberikan dan Streamlit memiliki lebih banyak fungsi dan fitur luar biasa yang dikemas di dalamnya. Beberapa fiturnya adalah sebagai berikut:
- Perubahan langsung saat Anda menyimpan file
- Jalankan kembali aplikasi hanya dengan menekan R pada keyboard
- Hapus cache hanya dengan menekan C pada keyboard
- Rekam aplikasi web dan simpan file video secara lokal untuk dibagikan dengan semua orang
…Dan banyak lagi
Harus Dibaca: Karir di Machine Learning
Kode
impor streamlit sebagai st
impor altair sebagai alt
impor pydeck sebagai pdk
train_area = st.kosong()
"""
# Harga Perumahan California

Ini adalah dataset Harga Perumahan California yang berisi data yang diambil dari Sensus AS 1990. Tabel berikut memberikan deskripsi, rentang data, dan tipe data untuk setiap fitur dalam kumpulan data.
## Pertama-tama mari kita lihat impor
"""
dengan st.echo():
impor tensorflow sebagai tf
impor numpy sebagai np
impor panda sebagai pd
"""
## Memuat Kumpulan Data
Kami akan menggunakan modul dataset scikit-learn untuk mengarahkan data yang sudah dibersihkan untuk kami dan hanya memiliki fitur numerik.
"""
dengan st.echo():
dari sklearn.datasets impor fetch_california_housing
perumahan = fetch_california_housing()
"""
Ini akan memuat seluruh data dalam variabel `housing` seperti yang Anda lihat di bawah
"""
st.subheader('Fitur Masukan')
perumahan.data
st.subheader('Label Keluaran')
perumahan.target
"""
## Memisahkan data menjadi set Train, Test, dan Dev
Ini adalah salah satu hal terpenting di awal setiap solusi Pembelajaran Mesin karena hasil dari model apa pun dapat sangat bergantung pada seberapa baik Anda mendistribusikan data ke dalam kumpulan ini.
Untungnya bagi kami, kami memiliki scikit-belajar untuk menyelamatkan yang menjadi semudah 2 baris kode.
"""
dengan st.echo():
dari sklearn.model_selection impor train_test_split
X_train_full, X_test, y_train_full, y_test = train_test_split(
perumahan.data, perumahan.target
)
X_train, X_valid, y_train, y_valid = train_test_split(
X_train_full, y_train_full
)
"""
Fungsi `train_test_split()` membagi data menjadi 2 set dengan set pengujian 25% dari total set data. Kami telah menggunakan fungsi yang sama lagi di train_full untuk membaginya menjadi set train dan validasi. 25% adalah parameter default dan Anda dapat mengubahnya sesuai kebutuhan Anda. Lihat dari [Dokumentasi Scikit-Learn](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html).
## Melihat data kereta
Kolom mewakili data berikut:
"""
st.write(housing.feature_names)
"""
Sekarang mari kita lihat lokasi rumah dengan memplotnya di peta menggunakan nilai Lintang dan Bujur:
"""
dengan st.echo():
peta_data = pd.DataFrame(
X_kereta api,
kolom=[
'Medi Inc',
'Umur Rumah',
'AveRooms',
'AveBedrms',
'Populasi',
'AveOccup',
'Garis Lintang',
'garis bujur'
])
titik tengah = (np.average(map_data[“latitude”]), np.average(map_data[“longitude”]))
st.write(pdk.Deck(
map_style="mapbox://styles/mapbox/light-v9″,
initial_view_state={
"lintang": titik tengah[0],
"bujur": titik tengah[1],
"memperbesar": 6,
"nada": 75,
},
lapisan=[
pdk.Lapisan(
"Lapisan segi enam",
data=data_peta,
get_position=[“bujur”, “lintang”],
jari-jari = 1000,
elevasi_skala=4,
ketinggian_rentang=[0, 10000],
dapat dipilih=Benar,
diekstrusi = Benar,
),
],
))
"""
**Jangan ragu untuk memperbesar atau menyeret sambil menekan tombol ALT untuk mengubah sudut pandang 3D peta, sesuai kebutuhan.**
## Prapemrosesan
Seperti yang ditunjukkan sebelumnya, dataset ini sudah diproses dengan baik oleh scikit-learn untuk kita gunakan secara langsung tanpa mengkhawatirkan nilai NaN dan hal lainnya.
Meskipun demikian, kita akan menskalakan nilai dalam rentang tertentu dengan menggunakan `StandardScaler` untuk membantu model kita bekerja secara efisien.
"""
dengan st.echo():
dari sklearn.preprocessing impor StandardScaler
penskala = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_valid = scaler.transform(X_valid)
X_test = scaler.transform(X_test)
"""
## Membuat model
Kami akan membuat Model Sequential sederhana dengan lapisan pertama berisi 30 neuron dan fungsi aktivasi RELU.
Lapisan berikutnya akan menjadi lapisan neuron tunggal tanpa fungsi aktivasi karena kita ingin model memprediksi rentang nilai dan bukan hanya hasil biner atau multikelas seperti masalah klasifikasi.
"""
st.sidebar.title('Hyperparameters')
n_neuron = st.sidebar.slider('Neuron', 1, 128, 30)
l_rate = st.sidebar.selectbox('Tingkat Belajar', (0,0001, 0,001, 0,01), 1)
n_Epochs = st.sidebar.number_input('Jumlah Epochs', 1, 50, 20)
#N_neuron, l_rate, dan _nepochs adalah input yang diambil dari pengguna untuk melatih model. Nilai default untuk mereka juga ditetapkan. Nilai default untuk n_neuron adalah 30, nilai default untuk l_rate adalah 0,01 dan nilai default untuk n_epoch adalah 20. Jadi pada awalnya model akan memiliki 30 neuron di lapisan pertama, kecepatan pembelajaran akan menjadi 0,01 dan jumlah epoch untuk yang akan dilatih oleh model adalah 20.
dengan st.echo():
impor tensorflow sebagai tf
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(n_neurons, activation='relu', input_shape=X_train.shape[1:]),
tf.keras.layers.Dense(1)
])
"""
## Mengkompilasi model
Tensorflow keras API memberi kita fungsi `model.compile()` untuk menetapkan pengoptimal, fungsi loss, dan beberapa detail lainnya untuk model.
"""
dengan st.echo():
model.kompilasi(
rugi='mean_squared_error',
pengoptimal=tf.keras.optimizers.SGD(l_rate)
)
"""
## Melatih model
Untuk melatih model, Anda cukup memanggil fungsi `fit()` pada model dengan set pelatihan dan validasi serta sejumlah epoch yang Anda inginkan untuk dilatih modelnya.
**Coba mainkan dengan hyperparameters dari sidebar di sisi kiri dan klik tombol `Train Model` yang diberikan di bawah ini untuk memulai pelatihan.**
"""
kereta = st.button('Model Kereta')
jika kereta api:
dengan st.spinner('Model Pelatihan…'):
dengan st.echo():
model.summary(print_fn=lambda x: st.write(“{}”.format(x)))
sejarah = model.fit(
X_kereta api,
y_kereta api,
zaman=n_zaman,
validasi_data=(X_valid, y_valid)
)
st.success('Pelatihan Model Selesai!')
"""
## Kinerja Model
"""
dengan st.echo():
st.line_chart(pd.DataFrame(history.history))
"""
## Mengevaluasi model pada Test set
Sekali lagi, langkah penting tetapi mudah dilakukan adalah mengevaluasi model Anda pada data uji yang belum pernah dilihat sebelumnya. Ingatlah bahwa Anda hanya boleh melakukan ini setelah Anda cukup yakin tentang model yang telah Anda buat dan Anda harus menolak membuat penyetelan hyperparameter setelah mengevaluasi model pada set pengujian karena itu hanya akan membuatnya lebih baik untuk set pengujian dan lagi akan ada menjadi masalah generalisasi ketika model akan melihat data baru dalam tahap produksi.
"""
dengan st.echo():
evaluasi = model.evaluate(X_test, y_test)
evaluasi
"""
> Kerugian pada set pengujian ini sedikit lebih buruk daripada pada set validasi, seperti yang diharapkan, karena model belum pernah melihat gambar dari set pengujian.
"""
"""
## Prediksi menggunakan Model
"""
dengan st.echo():
X_baru = X_test[:3]
prediksi = model.predict(X_new)
"""
### Prediksi
"""
prediksi
"""
### Kebenaran Dasar
"""
y_test[:3]
Ini dia! Hanya beberapa baris kode tambahan dan Anda telah membuat aplikasi web hebat yang terlihat cantik dan juga memiliki konten dinamis. Itu tidak sulit, bukan? Coba buat proyek yang berbeda dan gunakan fungsi Streamlit lainnya dari dokumentasinya. Ini cukup mudah dan intuitif.
Baca: Pembelajaran Mesin dengan Python
Menerapkan Aplikasi Web Streamlit
Aplikasi web Streamlit dapat digunakan untuk penggunaan langsung melalui berbagai opsi yang tersedia di internet. Kita dapat membahasnya secara singkat dan melihat bagaimana hal itu dapat dilakukan.
Sebelum pergi ke platform lain yang dapat membantu kami menyebarkan aplikasi web kami, mari kita lihat apa yang Streamlit tawarkan kepada kami. Rilis fitur terbaru yang mereka lakukan adalah Streamlit Sharing. Ini memungkinkan pengguna untuk menyebarkan aplikasi web Streamlit mereka dalam satu klik.
Jika Anda memiliki kode yang diunggah di repositori GitHub Anda, Anda cukup memilih repositori dari dasbor Streamlit dan itu akan secara otomatis meng-hostnya untuk Anda. Ini sangat menakjubkan dan benar-benar gratis seperti sekarang. Belum pernah ada cara yang lebih mudah sebelumnya untuk menerapkan aplikasi web pembelajaran mesin.
Heroku adalah metode bagus lainnya untuk menerapkan aplikasi web Streamlit. Dengan cara ini Anda tidak perlu memilih server cloud apa pun dan kemudian mengatur instance virtual di dalamnya. Semuanya diurus oleh Heroku.
Ada satu kelemahan sederhana di Heroku bahwa versi gratisnya tidak memungkinkan Anda untuk memiliki semua paket lebih dari ukuran 512MB dalam versi gratis. TensorFlow 2.2.0 yang saya gunakan untuk proyek ini sedikit lebih besar dari ruang yang ditentukan sehingga saya harus menggunakan layanan lain.
AWS (Amazon Web Services) juga merupakan cara yang bagus untuk menerapkan aplikasi Streamlit Anda. Ini sedikit rumit untuk pemula tetapi saat Anda menggunakannya, menjadi lebih mudah untuk diatur. Mereka menyediakan instans EC2 gratis untuk pengguna baru. Anda dapat meluncurkannya dengan Ubuntu 18.04 atau lebih tinggi dan menginstal semua dependensi yang diperlukan untuk aplikasi.
Setelah semuanya diatur, Anda dapat menjalankan aplikasi dengan menggunakan perintah – streamlit run filename.py. Di sini, Anda akan mendapatkan URL publik yang dapat dibagikan dengan semua orang. Salah satu kelemahan utama di sini adalah aplikasi tidak tersedia online jika Anda mematikan instance. Jadi instance gratis akan memiliki beberapa batasan.
Jika Anda memiliki kode di repositori GitHub, ada cara keren lainnya untuk meng-host aplikasi Anda. Ini tidak terlalu profesional dan sah karena pengguna juga perlu menginstal Streamlit di sistem mereka.
Jika Streamlit tersedia di sistem dan Anda memiliki tautan untuk file python aplikasi Streamlit, Anda dapat menjalankan aplikasi web hanya dengan menjalankan perintah: streamlit run url . Anda dapat memeriksa aplikasi saya secara lokal jika Anda telah menginstal Streamlit. Gunakan perintah berikut di terminal Anda:

streamlit jalankan https://raw.githubusercontent.com/tejasmorkar/housing_price_prediction_aws/master/CaliforniaHousingPrices.py
Kesimpulan
Anda telah melihat betapa sederhana namun kuatnya Streamlit. Saya belum pernah menemukan alat seperti itu sebelumnya yang membantu saya sejauh ini dan membuat hidup pengembangan saya lebih mudah. Jadi, inilah mengapa saya merasa bahwa Streamlit adalah kerangka kerja yang mengesankan yang dapat membantu semua orang fokus pada bagian penting dari pengembangan Pembelajaran Mesin dan membantu kami lebih berkonsentrasi pada pembelajaran utama AI dan ML. Ini membuat kurva belajar menjadi lebih mudah dan memungkinkan kami membangun dan menyebarkan proyek hobi dengan mudah.
Satu hal yang membuat framework ini sangat sederhana untuk diimplementasikan adalah dokumentasi resminya. Semua yang tertulis di dokumen akurat dan jelas. Saya menyarankan Anda untuk membaca dokumen sekali dan mencoba mengimplementasikan proyek baru. Ini adalah cara terbaik untuk memulai dengan kerangka kerja baru. Temukan dokumentasi resmi Streamlit di tautan berikut — https://docs.streamlit.io/en/stable/ target=”_blank” rel=”nofollow” .
Komunitas selalu menjadi sumber terbaik untuk mempelajari berbagai hal dan menemukan masalah dengan solusi kami. Streamlit memiliki forum diskusi yang luar biasa di mana Anda dapat memposting pertanyaan apa pun mengenai proses pengembangan aplikasi Streamlit, keraguan tentang penerapan, permintaan fitur, laporan bug, dan hal lain yang mungkin membantu Anda membangun aplikasi dengan sukses. Bergabunglah dengan forum diskusi di tautan berikut — https://discuss.streamlit.io/
Jika Anda tertarik untuk mempelajari lebih lanjut tentang pembelajaran mesin, lihat PG Diploma IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, IIIT- B Status alumni, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
Apa kesulitan terbesar dalam menerapkan proyek pembelajaran mesin?
Kesulitan terbesar dalam menerapkan proyek Machine Learning adalah ketidaklengkapan pengumpulan data. Sering kali waktu dan uang tidak cukup untuk mengumpulkan semua data yang diperlukan untuk mendapatkan analisis yang akurat. Oleh karena itu, data yang dikumpulkan harus dapat diandalkan dan berkualitas baik. Selain itu, data yang tepat harus dipilih. Pilihan data adalah kunci untuk penyebaran proyek.
Apa itu Streamlit dalam pembelajaran mesin?
Streamlit adalah algoritme inkremental untuk pembelajaran mesin. Ini mengeksploitasi fakta bahwa ruang pencarian jaringan saraf sangat besar dan pelatihan itu cepat, dan dengan demikian tidak perlu mencari seluruh ruang, tetapi dapat membangun jaringan saraf secara lokal. StreamLit adalah bentuk memori jangka pendek panjang yang digunakan untuk memproses data sekuensial. Ini adalah algoritma pembelajaran mendalam yang menggunakan RNN untuk mengkodekan data menjadi vektor angka. Vektor ini dapat digunakan untuk merepresentasikan data dalam grafik atau teks. Ini juga dapat digunakan untuk menghasilkan teks bahasa alami.
Bagaimana cara menyebarkan menggunakan Streamlit?
Menyebarkan dengan Streamlit itu sederhana. Pertama, Anda harus memiliki akun Streamlit. Kedua, Anda membutuhkan perangkat lunak yang dapat digunakan. Misalnya, Pohon Kacang, S3, atau rsync. Ketiga, Anda perlu mempersiapkan perangkat lunak Anda untuk penyebaran. Salin aplikasi Anda ke server web menggunakan rsync. Jika Anda menggunakan situs web baru, maka situs web tersebut adalah direktori yang Anda salin. Jika Anda menggunakan situs web yang ada, maka situs web yang diunggah adalah direktori yang Anda salin. Di sisi kiri layar di bawah