Iningi lethu lijwayelene namajeneretha ezithombe ze-AI afana Ukusabalalisa Okuzinzile. Isivele yashintsha imboni futhi isifakwe ezimpilweni zethu.
Kodwa-ke, amamodeli we-Stable Diffusion angaphezulu kakhulu kokukhiqizwa kwezithombe.
Ziningi izindawo esingabaqasha kuzo.
Amamodeli e-Stable Diffusion angamamodeli ezibalo. Futhi, bangakusiza ukuthi uphenye amandla okushintsha amasistimu ngokuhamba kwesikhathi.
Zisekelwe emicabangweni yenqubo yokusabalalisa. Ngakho, ungakwazi ukuhlola anhlobonhlobo izenzakalo. Ngokwesibonelo; ukudluliswa kokushisa, ukusabela kwamakhemikhali, nokusabalalisa ulwazi ezimakethe zezimali.
Lawa mamodeli avumelana nezimo kakhulu. Ngakho-ke, ungalindela isimo sesikhathi esizayo sesistimu ngokusekelwe esimweni sayo samanje.
Ngaphandle kwalokho, ungabona imithetho eyisisekelo engokomzimba noma yezezimali eyilawulayo. Lo mqondo uye waba usizo kakhulu ezindaweni eziningi. Lokhu kuhlanganisa i-physics, chemistry, kanye nezezimali.
Yingakho sifuna ukuyiphenya kabanzi. Futhi, sifuna ukukunikeza okokufundisa mayelana nendlela yokuqeqesha lawa mamodeli we-Stable Diffusion.
Aqhamuke Kanjani Amamodeli Okusabalalisa Okuzinzile?
Lokhu kunezimpande emuva ngasekupheleni kwekhulu le-19.
Uphenyo lwezibalo lwezinqubo zokusabalalisa ezindabeni yilapho amamodeli e-Stable Diffusion aqala khona. Enye yamamodeli aziwa kakhulu eStable Diffusion isibalo seFokker-Planck.
Yethulwa okokuqala ngo-1906. Lezi zinhlobo ziye zashintsha futhi zashintshwa ngokuhamba kwesikhathi. Ngakho-ke, manje siwasebenzisa ezimbonini ezihlukahlukene.
Iyini I-Logic Behind It?
Ngamagama alula, njengoba sishilo, angamamodeli ezibalo. Ngaphandle kwalokho, bayasisiza ukuthi siphenye ukuthi impahla noma inani lisabalala kanjani ngokuhamba kwesikhathi ohlelweni.
Zisekelwe ezimisweni zenqubo yokusabalalisa. Ngakho-ke, zisisiza ukuthi siphenye ukuthi inani lisabalala kanjani ohlelweni lonkana. Lokhu kusabalala kuwumphumela wokuhluka kokugxilisa ingqondo, ingcindezi, noma amanye amapharamitha.
Ake sinikeze isibonelo esilula. Ake ucabange unesiqukathi esigcwele uketshezi ongeze kuso udayi. Ukusabalalisa kubonakala lapha lapho udayi uqala ukuhlakazeka futhi uhlanganise uketshezi. Ngokusekelwe kuzici zoketshezi nodayi, amamodeli we-Stable Diffusion angase asetshenziselwe ukubikezela ukuthi udayi uzohlakazeka futhi uxubane kanjani ngokuhamba kwesikhathi.
Kuzinhlelo eziyinkimbinkimbi kakhulu, njengezimakethe zezimali noma ukusabela kwamakhemikhali, lawa mamodeli angabikezela ukuthi ulwazi noma izibaluli zizosakazeka kanjani futhi zibe nomthelela ohlelweni ngokuhamba kwesikhathi. Ngaphandle kwalokho, idatha enkulu ingase ijwayele qeqesha lawa mamodeli ukwenza izibikezelo ezinembile. Akhiwa kusetshenziswa amafomula ezibalo achaza ukuvela kwesistimu yesikhathi eside.
Ukuqonda nokubikezela ukusatshalaliswa kwezici ezithile ohlelweni ngokuhamba kwesikhathi kuwumqondo oyinhloko osekelwe kulawa mamodeli. Kubalulekile ukukhumbula ukuthi ochwepheshe emikhakheni ekhethekile ngokuvamile basebenzisa lawa mamodeli.
Indlela Yokuqeqesha Amamodeli?
Qoqa futhi ulungiselele idatha yakho:
Kufanele uqale uqoqe futhi ulungise idatha yakho ngaphambi kokuthi uqale ukuqeqesha imodeli yakho. Idatha yakho ingase idinge ukuhlanzwa futhi ifomethwe. Futhi, izinombolo ezingekho nazo zingadinga ukuqedwa.
Khetha imodeli yezakhiwo
Amamodeli we-Stable Diffusion eza ngezinhlobo ezahlukene. Isekelwe kakhulu kuzibalo ze-Fokker-Planck, isibalo se-Schrödinger, ne-Master equation. Imodeli efanelana kangcono nesimo sakho esithile kufanele ikhethwe. Ngakho-ke, ngayinye yalezi zibonelo inezinzuzo kanye nokubi.
Ukusungula umsebenzi wakho wokulahlekelwa
Kubalulekile ngoba kuthinta ukuthi imodeli yakho ingafanelana kanjani nedatha. Kumamodeli we-Stable Diffusion, iphutha elisho isikwele kanye nokuhlukana kwe-Kullback-Leibler kuyimisebenzi yokulahlekelwa evamisile.
Qeqesha imodeli yakho
Usebenzisa ukwehla kwe-stochastic gradient noma indlela efanayo yokwenza kahle, ungase uqale ukuqeqesha imodeli yakho ngemva kokuchaza umsebenzi wakho wokulahlekelwa.
Hlola ukugcwaliseka kwemodeli yakho
Kufanele uhlole idatha entsha ngemva kokuqeqeshwa ngokuyiqhathanisa nesethi yokuhlola yedatha.
Shuna amapharamitha emodeli yakho
Ukuze uthuthukise ukusebenza kwemodeli yakho, zama ngamavelu ahlukahlukene ama-hyperparameter afana nezinga lokufunda, usayizi wenqwaba, kanye nenani lezendlalelo ezifihliwe kunethiwekhi.
Phinda izenzo zangaphambilini
Ungase udinge ukuphinda lezi zinqubo izikhathi ezingaphezu kwesisodwa ukuze uthole imiphumela ehamba phambili. Kuzoncika ngobunzima benkinga kanye nekhwalithi yedatha.
Okokufundisa ngekhodi
Izilimi zokuhlela njengePython, MATLAB, C++, kanye no-R zingase zisetshenziselwe ukudala amamodeli we-Stable Diffusion. Ulimi olusetshenzisiwe luzoncika kuhlelo lokusebenza oluthile. Futhi, kungancika kumathuluzi namalabhulali enziwe atholakalele lolo limi.
I-Python iyisinqumo esihle kakhulu kuleli cala. Inemitapo yolwazi eqinile njenge-NumPy ne-SciPy yokubala izinombolo. Futhi, isekela i-TensorFlow futhi I-PyTorch ukudala nokuqeqesha amanethiwekhi e-neural. Ngakho-ke, iba inketho enhle yokubhala amamodeli we-Stable Diffusion.
Isibonelo:
Masisebenzise i-equation yokusabalalisa, ifomula yezibalo echaza ukuthi ikhwalithi noma inani, elifana nokushisa noma ukuhlangana kwento, lishintsha kanjani ngokuhamba kwesikhathi ohlelweni. Izibalo ngokuvamile zibukeka kanjena:
∂u/∂t = α ∇²u
I-diffusion coefficient () iyisilinganiso sokuthi indawo noma inani lisabalala kalula kanjani ngohlelo.
I-Laplacian ye-u (2u) iyincazelo yokuthi indawo noma inani lishintsha kanjani ngokuphathelene nesikhala. Lapho u-uyisakhiwo noma inani elisakazwayo (isibonelo, izinga lokushisa noma ukugxilisa ingqondo), t ukuhamba kwesikhathi, i-coefficient yokusabalalisa, futhi ukungaguquguquki kokusabalalisa ().
Singayisebenzisa sisebenzisa indlela ye-Euler kuPython.
import numpy as np
# Define the diffusion coefficient
alpha = 0.1
# Define the initial condition (e.g. initial temperature or concentration)
u = np.ones(100)
# Time step
dt = 0.01
# Time-stepping loop
for t in range(1000):
# Compute the spatial derivative
du = np.diff(u)
# Update the value of u
u[1:] = u[1:] + alpha * du * dt
Le khodi isebenzisa indlela ye-Euler ukuze isebenzise isibalo sokusabalalisa. Ichaza isimo sokuqala njengesimo sokuqala esifanayo esimelwe uxhaxha lwazo ezinomumo othi (100). 0.01 isetshenziswa njengesinyathelo sesikhathi.
Ukuphindaphinda okungu-1000 kweluphu yokunyathela isikhathi kuqediwe.
Isebenzisa umsebenzi we-np.diff, onquma umehluko phakathi kwezinto ezingomakhelwane. Ngakho-ke, ibala okuphuma kokunye kwendawo yendawo noma inani elisatshalaliswayo. Futhi, imelelwa ngu-du, ekuphindaphindweni ngakunye.
Bese siphindaphinda okuphuma kokunye kwendawo nge-alpha yokusabalalisa kanye nesinyathelo sesikhathi sokubuyekeza inani lika-u.
Isibonelo Esiyinkimbinkimbi Kakhudlwana
Ingabukeka kanjani imodeli yokusabalalisa okuzinzile ekala ukusakazeka kokushisa okuzinzile? Isebenza kanjani leyo khodi?
Ukuxazulula isethi ye-partial differential equations (PDEs) echaza ukuthi ukushisa kusakazeka kanjani kusistimu ngokuhamba kwesikhathi kuyadingeka. Ngakho-ke, singaqeqesha imodeli ye-Stable Diffusion ephindaphinda ukusakazeka kokushisa okuzinzile.
Nawu umfanekiso wendlela isibalo sokushisa, i-PDE echaza Ukuhluka Okuzinzile Kokushisa entweni enohlangothi olulodwa, ingaxazululwa kusetshenziswa indlela yomehluko olinganiselwe:
import numpy as np
import matplotlib.pyplot as plt
# Define the initial conditions
L = 1 # length of the rod
Nx = 10 # number of spatial grid points
dx = L / (Nx - 1) # spatial grid spacing
dt = 0.01 # time step
T = 1 # total time
# Set up the spatial grid
x = np.linspace(0, L, Nx)
# Set up the initial temperature field
T0 = np.zeros(Nx)
T0[0] = 100 # left boundary condition
T0[-1] = 0 # right boundary condition
# Set up the time loop
Tn = T0
for n in range(int(T / dt)):
Tnp1 = np.zeros(Nx)
Tnp1[0] = 100 # left boundary condition
Tnp1[-1] = 0 # right boundary condition
for i in range(1, Nx - 1):
Tnp1[i] = Tn[i] + dt * (Tn[i+1] - 2*Tn[i] + Tn[i-1]) / dx**2
Tn = Tnp1
# Plot the final temperature field
plt.plot(x, Tn)
plt.xlabel('x')
plt.ylabel('T(x)')
plt.show()
Ingabe I-Image Generation From Text Isebenza Kanjani?
Njengoba idume kakhulu ku-inthanethi, singabheka ukuthi ukukhiqizwa kwezithombe kusebenza kanjani futhi.
Izindlela zokucubungula ulimi lwemvelo (NLP) kanye amanethiwekhi we-neural. Futhi, asetshenziswa kaningi ukuhlinzeka ngemodeli Yokuhlukanisa Okuzinzile yokuguqulwa kombhalo uye esithombeni. Incazelo ebanzi yokuthi ungasifeza kanjani inikezwe ngezansi:
1- Faka ithokheni amagama kudatha yombhalo, futhi ususe amagama amisiwe nezimpawu zokuloba. Guqula amagama abe izinombolo. Iyingxenye yokucutshungulwa kwangaphambili (ukushumeka kwamagama).
import nltk
from nltk.tokenize import word_tokenize
nltk.download('punkt')
# Pre-processing the text data
text = "a bird sitting on a flower. "
words = word_tokenize(text)
words = [word.lower() for word in words if word.isalpha()]
2- Funda ukuthi ungahlobanisa kanjani umbhalo nezithombe usebenzisa inethiwekhi ye-neural ehlanganisa isifaki khodi nesikhiphi. Inethiwekhi yedecoder ithola ikhodi efihlekile njengokufakwayo. Bese, idala isithombe esihlobene ngemuva kokuthi inethiwekhi yesifaki khodi iguqule idatha yombhalo ibe isethulo esihlangene (ikhodi ecashile).
import tensorflow as tf
# Define the encoder model
encoder = tf.keras.Sequential()
encoder.add(tf.keras.layers.Embedding(input_dim=vocab_size,
output_dim=latent_dim))
encoder.add(tf.keras.layers.GRU(latent_dim))
encoder.add(tf.keras.layers.Dense(latent_dim))
# Define the decoder model
decoder = tf.keras.Sequential()
decoder.add(tf.keras.layers.Dense(latent_dim,
input_shape=(latent_dim,)))
decoder.add(tf.keras.layers.GRU(latent_dim))
decoder.add(tf.keras.layers.Dense(vocab_size))
# Combine the encoder and decoder into an end-to-end model
model = tf.keras.Sequential([encoder, decoder])
3- Ngokuyinikeza iqoqo elikhulu lezithombe nezincazelo zombhalo ezihambisana nazo. Bese, ungaqeqesha inethiwekhi yesikhiphi khodi.
# Compile the model
model.compile(optimizer='adam',
loss='categorical_crossentropy')
# Train the model on the dataset
model.fit(X_train, y_train, epochs=10, batch_size=32)
4- Ngemva kokuba inethiwekhi isiqeqeshiwe, ungayisebenzisa ukukhiqiza izithombe ezisuka emibhalweni emisha. Futhi, kungokuphakela umbhalo kunethiwekhi yesifaki khodi. Ngemva kwalokho, ungakwazi ukukhiqiza ikhodi ecashile, bese uphakela ikhodi efihlekile kunethiwekhi yedekhoda ukuze ukhiqize isithombe esihlobene.
# Encode the text input
latent_code = encoder.predict(text)
# Generate an image from the latent code
image = decoder.predict(latent_code)
5-Ukukhethwa kwesethi yedatha efanele nemisebenzi yokulahlekelwa kungesinye sezinyathelo ezibaluleke kakhulu. Idathasethi iyahlukahluka futhi iqukethe izinhlobonhlobo zezithombe nezincazelo zombhalo. Sifuna ukwenza isiqiniseko sokuthi izithombe ziyiqiniso. Futhi, sidinga ukuqiniseka ukuthi izincazelo zombhalo ziyenzeka ukuze sikwazi ukuklama umsebenzi wokulahlekelwa.
# Define the loss function
loss = tf.losses.mean_squared_error(y_true, y_pred)
# Compile the model
model.compile(optimizer='adam', loss=loss)
# use diverse dataset
from sklearn.utils import shuffle
X_train, y_train = shuffle(X_train, y_train)
Okokugcina, ungazama nezinye izakhiwo nezindlela. Ngakho, ukuthi ungakwazi ukukhulisa ukusebenza imodeli, ezifana izindlela zokunaka, ama-GAN, noma ama-VAE.
shiya impendulo