Tha TensorFlow na inneal ioma-ghnìomhach airson modalan ionnsachaidh inneal a chruthachadh.
Anns an dreuchd seo, seallaidh sinn ri mar a chruthaicheas tu siostam aithneachaidh aghaidh le TensorFlow, frèam ionnsachaidh inneal stòr fosgailte. Thèid sinn thairis air na pròiseasan riatanach ann a bhith a’ cruthachadh siostam aithneachaidh aghaidh soirbheachail, bho bhith a’ cruinneachadh agus ag ullachadh dàta gu bhith a’ trèanadh agus a’ measadh modail.
Gheibh thu eòlas pearsanta le TensorFlow gus aithne aghaidh a chruthachadh le cuideachadh bho chriomagan còd agus eisimpleirean san t-saoghal fhìor. Tha fàilte oirbh leantainn air adhart mar a thèid sinn air adhart.
Ro-ràdh do TensorFlow
Tha TensorFlow na leabharlann stòr fosgailte an-asgaidh. Is e bogsa inneal matamataigeach samhlachail a th’ ann a bhios a’ cleachdadh dataflow agus prògramadh eadar-dhealaichte. Faodaidh tu raon de ghnìomhan a làimhseachadh leis, a 'gabhail a-steach domhainn lìon neònach trèanadh.
Tha TensorFlow cumhachdach agus sùbailte. Mar an ceudna, tha e na inneal math airson leasachadh agus a’ cleachdadh mhodalan ionnsachaidh inneal. Faodaidh tu modalan iom-fhillte a thogail le grunn shreathan agus gnìomhachd tensor. Cuideachd, faodar modalan ro-thogte san leabharlann a ghleusadh airson feumalachdan sònraichte.
A bharrachd air an sin, tha coimhearsnachd luchd-cleachdaidh mòr a tha a’ leudachadh aig TensorFlow. Mar sin, tha pailteas fiosrachaidh is cuideachaidh ann do dhaoine fa leth a tha ùr don àrd-ùrlar.
Tha fèill mhòr air TensorFlow airson ionnsachadh innealan gu ìre air sgàth gu bheil e a’ toirt seachad sruth-obrach deireadh-gu-deireadh. Mar sin, is urrainn dhut gu furasta modalan a thogail, a thrèanadh agus a chleachdadh. Tha e a’ toirt seachad innealan agus ro-innleachdan airson modalan a leasachadh agus a sgèileadh gus freagairt air iarrtasan sònraichte. Tha e eadar-dhealaichte bho ro-ghiollachd dàta gu cleachdadh mhodail.
Dè a th’ ann an Aithneachadh Aghaidh?
Tha aithne aghaidh a lèirsinn coimpiutair gnìomh a chomharraicheas aithne neach stèidhichte air an aghaidh. Tha an dòigh seo ag aithneachadh feartan aghaidh, leithid cumadh agus inneach nan sùilean, an t-sròin agus am beul.
Agus, bidh e gan coimeas ri stòr-dàta de dh’ aghaidhean aithnichte gus maids a chomharrachadh. Tha grunn chleachdaidhean aig aithne aghaidh, a’ toirt a-steach siostaman tèarainteachd, eagrachadh dhealbhan, agus dearbhadh biometric.
Tha cruinneas algorithm aithne aghaidh air a dhol suas gu mòr anns na bliadhnachan mu dheireadh mar thoradh air adhartasan ann an ionnsachadh innealan.
A' toirt a-steach leabharlannan riatanach
Mus tòisich sinn air dad, feumaidh sinn na leabharlannan a tha a dhìth airson ar modail a thoirt a-steach. Tha Tensorflow (tf) air a thoirt a-steach agus air a chleachdadh gus am modail a chruthachadh agus a thrèanadh. <(p>
Bidh “numpy” a’ coileanadh àireamhachadh matamataigeach agus giollachd dàta.
Tha “matplotlib.pyplot” air a thoirt a-steach mar plt agus air a chleachdadh airson clàradh dàta agus lèirsinn.
Mu dheireadh, tha “fetch lfw people” air a thoirt a-steach bho sklearn. stòran-dàta agus air a chleachdadh gus an dàta aithneachaidh aghaidh a luchdachadh. Tha an gnìomh seo mar phàirt den inneal scikit-learn. Taing don ghnìomh seo cha robh againn ri stòr-dàta eile a luchdachadh suas. Tha seo mar-thà air a thogail ann an sckit-learn.
Agus, bheir e cothrom dhut air raon farsaing de stòran-dàta airson ionnsachadh innealan iarrtasan. Anns an t-suidheachadh seo, bidh sinn a’ cleachdadh an dòigh fetch lfw people gus an stòr-dàta “Labeled Faces in the Wild” (LFW) fhaighinn air ais. Tha e a’ toirt a-steach dealbhan de aghaidhean dhaoine a bharrachd air na bileagan a tha a’ dol leotha.
Tha na leabharlannan sin deatamach ann a bhith a’ buileachadh agus a’ measadh ar modal aithneachaidh aghaidh.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Ag ullachadh agus a’ luchdachadh an t-seata dàta aithne aghaidh
Anns a’ phàirt seo, bidh sinn a’ cleachdadh a’ ghnìomh “fetch lfw people” gus an dàta aithneachaidh aghaidh ro-phròiseas. An toiseach, bidh sinn a’ cleachdadh daoine faigh lfw leis an roghainn “min faces per person = 60”. Tha seo a’ nochdadh nach eil sinn airson ach daoine a thoirt a-steach don t-seata aig a bheil co-dhiù 60 dealbh. Mar sin, bidh sinn a’ dèanamh cinnteach gu bheil dàta iomchaidh aig a’ mhodail againn airson ionnsachadh. Cuideachd, tha seo a 'lùghdachadh cunnart overfitting.
Tha an dàta agus na bileagan bhon nì aghaidh an uairsin air an toirt a-mach agus air an sònrachadh dha na caochladairean X agus y. X eil.
Tha sinn a-nis deiseil airson ar modal aithneachaidh aghaidh a thrèanadh a’ cleachdadh dàta agus bileagan ro-ullaichte.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
A 'sgoltadh trèanadh agus seataichean deuchainn
Anns a’ cheum seo, roinn sinn ar dàta aithneachaidh aghaidh ann an dà leth a’ cleachdadh an dòigh sgoltadh deuchainn trèana bho thaghadh sklearn.model. Is e amas an sgaradh seo coileanadh ar modail a mheasadh às deidh trèanadh
Tha gnìomh sgoltadh deuchainn trèana a’ gabhail ris mar dàta cuir a-steach X agus bileagan y. Agus, bidh e gan roinn ann an seataichean trèanaidh agus deuchainn. Bidh sinn a’ taghadh meud deuchainn = 0.2 san eisimpleir seo. Tha seo a’ ciallachadh gun tèid 20% den dàta a chleachdadh mar sheata deuchainn agus 80% mar sheata trèanaidh. A bharrachd air an sin, bidh sinn a’ cleachdadh air thuaiream state = 42 gus dèanamh cinnteach gu bheil an dàta air a roinn gu cunbhalach gach uair a thèid an còd a choileanadh.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Ag ullachadh an dàta
Is e adhbhar ro-ghiollachd dàta ullachadh airson a dhol a-steach don mhodail. Tha an dàta air a phròiseasadh ro-làimh sa chòd seo le bhith a’ roinneadh gach puing dàta le 255.
Dè a bhrosnaich sinn gus seo a choileanadh? Is e modh ro-ghiollachd a th’ ann an gnàthachadh a thathar a’ cleachdadh ann an ionnsachadh innealan gus dèanamh cinnteach gu bheil na feartan uile air an aon sgèile. Anns an t-suidheachadh seo, bidh roinneadh le 255 a’ sgèileadh an dàta gu raon de 0 gu 1, a tha na cheum àbhaisteach airson dàta dealbh àbhaisteach.
Bidh seo a 'luathachadh co-ghluasad a' mhodail agus faodaidh e coileanadh àrdachadh.
X_train = X_train / 255.0
X_test = X_test / 255.0
A 'cruthachadh modh
Tha sinn airson an neach aig a bheil aghaidh a’ nochdadh ann an dealbh aithneachadh. Anns a 'chùis seo, cleachdaidh sinn lìonra làn-cheangailte, ris an canar gu tric lìonra dùmhail. Is e lìonra neural fuadain a chaidh a chleachdadh gus am modail a chruthachadh.
Tha lìonraidhean neòil fuadain air am modaladh a rèir mar a tha an eanchainn daonna ag obrachadh agus air a eagrachadh. Tha iad air an dèanamh suas de nodan giollachd fiosrachaidh no neurons a tha ceangailte. Tha gach neuron ann an sreath ann an lìonra dùmhail ceangailte ris a h-uile neuron san t-sreath os a chionn.
Tha ceithir sreathan aig a’ mhodail sa chòd seo. Gus a bhith air a bhiadhadh a-steach don ath shreath, tha an dàta cuir a-steach air a dhèanamh rèidh anns a’ chiad shreath ann an sreath aon-thaobhach. Tha na neurons 128 agus 64 anns an dà shreath a leanas, a rèir sin, ceangailte gu tur.
Tha gnìomh gnìomhachaidh ReLU na ghnìomh gnìomhachaidh sònraichte a bhios na sreathan sin a’ cleachdadh. Le sin, is urrainn dhuinn am modail ionnsachadh co-dhàimhean neo-loidhneach eadar na cuir a-steach agus na toraidhean. Bidh an sreath mu dheireadh a’ cleachdadh gnìomh gnìomh softmax gus ro-innse a dhèanamh. Agus, is e sreath làn-cheangailte a th’ ann le uimhir de neurons ’s a tha ann an clasaichean.
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(62 * 47,)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(len(target_names), activation='softmax')
])
Cruinneachadh a' Mhodail
Tha am modail air a chur ri chèile a 'cleachdadh a' ghnìomh "compile". Feumaidh sinn am modail ullachadh airson trèanadh. Mar sin, mìnichidh sinn an optimizer, gnìomh call, agus metrics a thèid a chleachdadh gus am modail a mheasadh.
Rè an trèanaidh, tha an optimizer an urra ri paramadairean a ’mhodail atharrachadh. Tha an optimizer “adam” na dhòigh optimization ionnsachadh domhainn mòr-chòrdte.
Bidh sinn a’ cleachdadh a’ ghnìomh call gus coileanadh a’ mhodail a mheasadh air an dàta trèanaidh. Leis gur e àireamhan iomlan a th’ anns na bileagan targaid a tha a’ nochdadh clas na h-ìomhaigh seach vectaran còdaichte aon-teth, tha an gnìomh call “casg gnèitheach crossentropy” fàbharach.
Mu dheireadh, bidh sinn a 'mìneachadh nan slatan-tomhais airson measadh a dhèanamh air a' mhodail, sa chùis seo, "cruinneas".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Trèanadh modail
Cleachdaidh sinn an gnìomh “fit” gus am modail a thrèanadh.
Bidh sinn a’ toirt seachad an dàta trèanaidh (trèana X) agus bileagan co-cheangailte (y train), a bharrachd air a bhith a’ suidheachadh an àireamh de amannan (aithrisean) airson ruith mar 10. Bidh am modh trèanaidh ag atharrachadh cuideaman a’ mhodail gus call a lughdachadh (an diofar eadar bileagan ro-innseach agus fìor) agus leasaich cruinneas dàta trèanaidh.
model.fit(X_train, y_train, epochs=10)
Measadh Modail
A-nis, feumaidh sinn am modal trèanaidh a mheasadh air an dàta deuchainn. Bidh sinn a’ cleachdadh call deuchainn agus thathas a’ cleachdadh cruinneas deuchainn gus coileanadh a’ mhodail a mheasadh. Air an dàta deuchainn deuchainn X agus na bileagan deuchainn y test, feumaidh sinn “the model.valuate function” a ghairm
Bidh an gnìomh a’ toirt a-mach cruinneas deuchainn agus call deuchainn. Tha na luachan sin anns na caochladairean call deuchainn agus cruinneas deuchainn, fa leth. Mu dheireadh, bidh sinn a’ cleachdadh a’ ghnìomh “clò-bhualaidh” gus cruinneas na deuchainn a thoirt a-mach.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Clasaichean ro-innse agus faighinn na clasaichean ro-innse
A’ cleachdadh a’ mhodail trèanaidh agus an dàta deuchainn, bidh an algairim a’ dèanamh ro-innse. Nuair a thèid an dàta deuchainn a chuir chun dòigh “model.predict”, bidh e a’ toirt a-mach grunn ro-innsean airson gach dealbh san t-seata deuchainn.
Tha an t-ainm clas targaid airson gach dealbh an uairsin air fhaighinn air ais bhon liosta “ainmean targaid” a’ cleachdadh an gnìomh “np.argmax” gus an clàr-amais leis a’ choltachd as àirde a chomharrachadh. Tha an clàr-amais seo an uairsin air a chleachdadh gus an clas a thathar a’ sùileachadh airson gach ìomhaigh a dhearbhadh.
A’ cleachdadh tuigse liosta, tha a h-uile ro-innse anns an raon “ro-innse” fo smachd an dòigh seo, a’ leantainn gu liosta nan “clasaichean ro-mheasta”.
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
A 'toirt sùil air na fàisneachdan
Chì sinn a-nis mar a tha am modail againn a’ coimhead.
Gus measadh a dhèanamh air dè cho math ‘s a tha am modail a’ dèanamh, thèid a’ chiad 10 dealbhan agus na fàisneachdan aca a shealltainn. Dealbhaidh e na dealbhan ann an sgèile-gràine agus seallaidh e an dà chuid fìor chlas na h-ìomhaigh agus an clas a tha am modail a’ ro-innse a’ cleachdadh modal matplotlib.pyplot.
Tha an gnìomh “imshow” air a chleachdadh leis an airson loop gus gach aon de na ciad 10 dealbhan seata deuchainn a dhealbhadh. Bithear a’ cleachdadh ainmean targaid[y test[i]] agus clasaichean ro-innse[i] gus fìor chlas agus clas ro-innse na h-ìomhaigh a dhearbhadh, fa leth. Tha tiotalan gach plota an uairsin air an comharrachadh leis na seòrsachadh sin.
Mu dheireadh, tha an cuilbheart air a thaisbeanadh a’ cleachdadh modh plt.show().
for i in range(10):
plt.imshow(X_test[i].reshape(62, 47), cmap='gray')
plt.title(f"True: {target_names[y_test[i]]}, Predicted:{predicted_classes[i]}")
plt.show()
Còmhdaich
Tha TensorFlow a’ tabhann àrainneachd iomlan is sùbailte airson modalan ionnsachaidh inneal a chruthachadh.
Le bhith a’ gleusadh a’ mhodail gus coinneachadh ri riatanasan sònraichte no le bhith a’ cur leasachaidhean ùra ann an ionnsachadh innealan ris, faodar neo-mhearachdachd a’ mhodail àrdachadh eadhon nas fhaide.
Tha e coltach gum bi TensorFlow agus aithne aghaidh air an cleachdadh barrachd ann an gnìomhachasan leithid siostaman tèarainteachd, dearbhadh biometric, agus cùram slàinte san àm ri teachd. Bidh sinn a’ faicinn innleachdan inntinneach a dh’ aithghearr.
Leave a Reply