Eli nqaku limalunga nePython Gateway, iprojekthi yoluntu evulekileyo ye-InterSystems IRIS data platform. Le projekthi ikuvumela ukuba ulungelelanise nayiphi na i-algorithms yokufunda koomatshini eyenziwe kwiPython (eyona ndawo iphambili yeeNzululwazi ezininzi zeData), sebenzisa amathala eencwadi amaninzi esele yenziwe ngokukhawuleza ukudala izisombululo eziguquguqukayo, ezihlalutyayo zerobhothi ze-AI / ML kwiqonga le-InterSystems IRIS. Kule nqaku, ndiza kubonisa indlela i-InterSystems IRIS inokwenza ngayo iinkqubo kwiPython, inxibelelane ngokufanelekileyo idatha yeendlela ezimbini, kwaye idale iinkqubo zoshishino ezihlakaniphile.
Cwangciso
- Intshayelelo.
- Izixhobo.
- Ukufakwa
- API.
- Ukusebenzisana.
- Jupyter Notebook.
- Izigqibo.
- Unxulumano.
- MLToolkit.
Intshayelelo
I-Python lulwimi olukumgangatho ophezulu, olujoliswe ekuphuculeni imveliso yophuhlisi kunye nekhowudi yokufunda. Kolu luhlu lwamanqaku, ndiza kuxubusha amathuba okusebenzisa iPython kwi-InterSystems IRIS iqonga, ingqwalasela ephambili yeli nqaku kukusetyenziswa kwePython njengolwimi lokudala kunye nokuqhuba imodeli yokufunda koomatshini.
Ukufunda ngomatshini (ML) yiklasi yeendlela zobukrelekrele bokwenziwa, uphawu lweempawu ezingezona isisombululo esithe ngqo sengxaki, kodwa ukufunda kwinkqubo yokusombulula iingxaki ezininzi ezifanayo.
Ii-algorithms zokufunda koomatshini kunye neemodeli ziya zixhaphaka ngakumbi. Kukho izizathu ezininzi zoku, kodwa konke kuhla ekufikelelekeni, ukulula kunye nokuphumeza iziphumo ezibonakalayo. Ngaba ukudibanisa okanye inethiwekhi ye-neural imodeli entsha yetekhnoloji?
Ngokuqinisekileyo akunjalo, kodwa namhlanje akukho mfuneko yokubhala amakhulu amawaka emigca yekhowudi ukuqhuba imodeli enye, kwaye iindleko zokudala nokusebenzisa iimodeli ziba ngaphantsi nangaphantsi.
Izixhobo ziyaguquguquka - ngelixa singenazo ngokupheleleyo izixhobo ze-AI / ML ze-GUI-centric, inkqubela esiyibonileyo kunye nezinye iiklasi ezininzi zeenkqubo zolwazi, ezifana ne-BI (ukusuka kwikhowudi yokubhala ukuya ekusebenziseni izikhokelo kunye ne-GUI-centric configurable solutions) , ikwajongwe kwizixhobo zokwenza i-AI/ML. Sele siphumelele inqanaba lokubhala ikhowudi kwaye namhlanje sisebenzisa izikhokelo zokwakha nokuqeqesha imizekelo.
Olunye uphuculo, olufana nokukwazi ukusasaza imodeli eqeqeshwe kwangaphambili apho umsebenzisi wokugqibela kufuneka agqibe ukuqeqesha imodeli kwiinkcukacha zabo ezithile, kwenza kube lula ukuqalisa ngokufunda ngomatshini. Ezi nkqubela phambili zenza ukuba ukufunda koomatshini kube lula kakhulu kuzo zombini iingcali kunye neenkampani ngokubanzi.
Ngakolunye uhlangothi, siqokelela idatha eninzi nangaphezulu. Ngeqonga ledatha elidibeneyo njenge-InterSystems IRIS, lonke olu lwazi lunokulungiswa ngokukhawuleza kwaye lusetyenziswe njengegalelo kwiimodeli zokufunda ngomatshini.
Ngokufudukela kwilifu, ukuqaliswa kweeprojekthi ze-AI/ML kuya kuba lula kunangaphambili. Sinokusebenzisa kuphela izixhobo esizidingayo. Ngaphezu koko, ngenxa yokuhambelana okunikezelwa ngamaqonga elifu, sinokugcina ixesha elichithwe.
Kodwa kuthekani ngemiphumo? Apha kulapho izinto ziba nzima khona. Kukho izixhobo ezininzi zokwakha iimodeli, endiya kuxoxa ngazo ngokulandelayo. Ukwakha imodeli elungileyo akulula, kodwa yintoni elandelayo? Ukwenza inzuzo ngokusebenzisa imodeli yeshishini kungumsebenzi ongeyomfuneko. Ingcambu yengxaki kukuhlukana komsebenzi wokuhlalutya kunye nokuthengiselana, kunye neemodeli zedatha. Xa siqeqesha imodeli, ngokuqhelekileyo siyenza kwidatha yembali. Kodwa indawo yemodeli eyakhiweyo kukusetyenzwa kwedatha. Inceda ngantoni eyona modeli yobonelelo lwentengiselwano yobuqhophololo ukuba siyayiqhuba kanye ngemini? Ootsotsi kudala bemka nemali. Kufuneka siqeqeshe imodeli kwidatha yembali, kodwa kufuneka siyisebenzise ngexesha langempela kwidatha entsha engenayo ukuze iinkqubo zethu zoshishino zikwazi ukwenza izinto eziqikelelweyo ezenziwe yimodeli.
I-ML Toolkit yiseti yezixhobo ezijolise ukwenza oku kanye: ukudibanisa iimodeli kunye nemo yentengiselwano ukuze iimodeli ezakhiweyo zisetyenziswe ngokulula kwiinkqubo zakho zoshishino. I-Python Gateway yinxalenye ye-ML Toolkit kwaye ibonelela ngokudityaniswa nolwimi lwePython (ngokufanayo nendlela i-R Gateway, ukuba yinxalenye ye-ML Toolkit ibonelela ngayo ukudityaniswa nolwimi lwe-R).
Izixhobo
Ngaphambi kokuba siqhubeke, ndingathanda ukuchaza izixhobo ezimbalwa zePython kunye namathala eencwadi esiya kuwasebenzisa kamva.
zobugcisa
- I-Python lulwimi olutolikwayo, olukwinqanaba eliphezulu, lwenjongo jikelele. Inzuzo ephambili yolwimi yilayibrari yayo enkulu yezibalo, iilayibrari ze-ML kunye ne-AI. Njenge-ObjectScript, lulwimi olujolise kwinto ethile, kodwa yonke into ichazwa ngokuguquguqukayo endaweni ye-statically. Kwakhona yonke into iyinto. Amanqaku amva athatha ukuqhelana nolwimi. Ukuba ufuna ukuqala ukufunda, ndincoma ukuqala
amaxwebhu . - Kwimisebenzi yethu elandelayo, setha
Python 3.6.7 64 bit . - IDE: Ndiyayisebenzisa
I-PyCharm , kodwa ngokubanziмного . Ukuba usebenzisa i-Atelier, kukho iplagi ye-Eclipse yabaphuhlisi bePython. Ukuba usebenzisa iKhowudi yeVS, kukho ukongezwa kwePython. - Incwadi yamanqaku: Endaweni ye-IDE, ungabhala kwaye wabelane ngezikripthi zakho kwiincwadana zamanqaku ze-intanethi. Eyona idumileyo kubo
ijupyter .
Amathala eencwadi
Nalu uluhlu (olungaphelelanga) lweelayibrari zokufunda ngoomatshini:
numpy - iphakheji esisiseko yezibalo ezichanekileyo.Iipandas - izakhiwo zedatha ephezulu kunye nezixhobo zokuhlalutya idatha.matplotlib - ukudalwa kweegrafu.Ulwandle -Ukubona idatha esekwe kwi-matplotlib.Sklearn - iindlela zokufunda ngoomatshini.XGBoost -Ii-algorithms zokufunda koomatshini ngaphakathi kwesakhelo sendlela yokukhulisa igradient.Gensim -NLP.I-Keras - iinethiwekhi ze-neural.I-Tensorflow - iqonga lokudala imodeli yokufunda koomatshini.I-PyTorch liqonga lokudala imodeli yokufunda koomatshini, egxile kwiPython.Nyoka -PMML kwiimodeli ezahlukeneyo.
Itekhnoloji ye-AI/ML yenza ishishini lisebenze ngakumbi kwaye liguquke. Ngaphezu koko, namhlanje obu buchwepheshe buba lula ukuphuhlisa nokuphumeza. Qala ukufunda malunga nobuchwepheshe be-AI/ML kunye nendlela abanokunceda ngayo umbutho wakho ukuba ukhule.
isicwangciso
Kukho iindlela ezininzi zokufaka kunye nokusebenzisa iPython Gateway:
- I-OS
- Windows
- Linux
- IMac
- Docker
- Sebenzisa umfanekiso ovela kwiDockerHub
- Yenza inkangeleko yakho
Nokuba yeyiphi na indlela yokuhlohla, uya kufuna ikhowudi yomthombo. Indawo kuphela yokukhuphela ikhowudi
I-OS
Ukuba ufaka i-Python Gateway kwinkqubo yokusebenza, ngoko kuqala (kungakhathaliseki ukuba yinkqubo yokusebenza) kufuneka ufake iPython. Yale:
Faka iPython 3.6.7 64 bit . Kucetyiswa ukuba ufake iPython kulawulo olungagqibekanga.- Faka imodyuli
dill
:pip install dill
. - Khuphela ikhowudi ye-ObjectScript (okt.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) kuyo nayiphi na indawo enemveliso. Ukuba ufuna indawo ekhoyo ukuxhasa iimveliso, sebenzisa:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - Indawo
callout DLL/SO/DYLIB kwifoldabin
umzekelo wakho weInterSystems IRIS. Ifayile yethala leencwadi kufuneka ifumaneke kwindlela ebuyisiweyowrite ##class(isc.py.Callout).GetLib()
.
Windows
- Qinisekisa ukuguquguquka kokusingqongileyo
PYTHONHOME
ikhomba kwiPython 3.6.7. - Qinisekisa ukuba ukuguquguquka kwemeko-bume yenkqubo
PATH
iqulathe utshintshoPYTHONHOME
(okanye uvimba weefayili ekhomba kuwo).
Linux (Debian/Ubuntu)
- Jonga ukuba imeko-bume iguquguquka
PATH
iqulethe/usr/lib
и/usr/lib/x86_64-linux-gnu
. Sebenzisa ifayile/etc/environment
ukuseta iinguqu zemo engqongileyo. - Kwimeko yeempazamo
undefined symbol: _Py_TrueStruct
seta usetoPythonLib
. kwakhona kwiReadme kukho icandelo leNgxaki.
IMac
- Okwangoku kuphela iPython 3.6.7 exhaswayo
IPython.org . Jonga inguquPATH
.
Ukuba utshintshe izinto eziguquguqukayo zemekobume, qala kwakhona imveliso yakho ye-InterSystems.
Docker
Ukusebenzisa izikhongozeli kuneengenelo ezininzi:
- Ukuphatheka
- Impumelelo
- Ukufakwa
- Ukukhanya
- Ukungaguquki
Jonga oku
Zonke izakhiwo zePython Gateway okwangoku zisekwe kwizikhongozeli 2019.4
.
Umfanekiso olungile
Baleka: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest
ukukhuphela kunye nokusebenza kwePython Gateway kunye ne-InterSystems IRIS Community Edition. Kuko konke.
Yenza inkangeleko yakho
Ukwakha umfanekiso wedokhi, baleka kwingcambu yendawo yokugcina: docker build --force-rm --tag intersystemscommunity/irispy:latest .
.
Ngokungagqibekanga, umfanekiso wakhiwe ngokusekelwe kumfanekiso store/intersystems/iris-community:2019.4.0.383.0
, nangona kunjalo ungatshintsha oku ngokucwangcisa utshintsho IMAGE
.
Ukwakha ukusuka kwi-InterSystems IRIS, sebenzisa: `i-docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest ".
Emva koku unokuqhuba umfanekiso wedocker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.key
Ukuba usebenzisa umfanekiso osekelwe kwi-InterSystems IRIS Community Edition, ungasishiya isitshixo.
izimvo
- Inkqubo yovavanyo
isc.py.test.Process
igcina inani lemifanekiso kulawulo lwexeshana. Ungafuna ukutshintsha le ndlela kulawulo olunyusiweyo. Ukwenza oku, hlela usetoWorkingDir
ikhankanya uvimba weefayili onyusiweyo. - Ukufikelela kwi-terminal run:
docker exec -it irispy sh
. - Ukufikelela kwiPortal yoLawulo lweNkqubo ngokungena
SuperUser
/SYS
. - Ukumisa isikhongozeli, sebenzisa:
docker stop irispy && docker rm --force irispy
.
Ukuqinisekisa ukufakela
Nje ukuba uyifakile iPython Gateway, kufanelekile ukujonga ukuba iyasebenza. Yenza le khowudi kwi-InterSystems IRIS terminal:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Isiphumo kufuneka sibe: HELLO
-Ixabiso eliguquguqukayo lePython x
. Ukuba ubume bembuyekezo sc
yimpazamo okanye var
engenanto, khangela
API
I-Python Gateway ifakiwe kwaye uqinisekisile ukuba iyasebenza. Lixesha lokuba uqale ukuyisebenzisa!
Ujongano oluphambili kwiPython yi isc.py.Main
. Inika amaqela alandelayo eendlela (zonke ziyabuya %Status
):
- Ukuphunyezwa kweKhowudi
- Ukuhanjiswa kwedatha
- Umncedi
Ukuphunyezwa kweKhowudi
Ezi ndlela zikuvumela ukuba wenze ikhowudi yePython engafanelekanga.
SimpleString
SimpleString
- le yeyona ndlela iphambili. Kuthatha iingxoxo ezi-4 ozikhethelayo:
code
— umgca wekhowudi oza kuwenza. Unobumba wesondlo somgca:$c(10)
.returnVariable
— igama loguqulo oluza kubuyiselwa.serialization
- indlela yokwenza uthothoreturnVariable
. 0 - umtya (ongagqibekanga), 1 - repr.result
- Ireferensi ye-ByRef kuguquko apho ixabiso libhalwa khonareturnVariable
.
ngasentla senze:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Kulo mzekelo, sabela ukwahluka kwePython x
intsingiselo Hello
kwaye ufuna ukubuyisela ixabiso lePython variable x
kwi-ObjectScript eguquguqukayo var
.
Yenza iKhowudi
I-ExecuteCode yeyona ndlela ikhuselekileyo kwaye inesithintelo esincinci SimpleString
.
Imigca kwi-InterSystems iqonga le-IRIS lilinganiselwe kwiimpawu ze-3, kwaye ukuba ufuna ukuphumeza ikhowudi ende, kufuneka usebenzise iintambo.
Iingxoxo ezimbini zamkelwe:
code
-umgca okanye umlambo wekhowudi yePython ekufuneka iphunyezwe.variable
- (ukhetho) unika umphumo wokubulawacode
oku kuguquguquka kwePython.
Umzekelo wokusetyenziswa:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Kulo mzekelo, siphindaphinda u-2 ngo-3 kwaye sibhale umphumo kwi-Python variable y
.
Ukuhanjiswa kwedatha
Dlula idatha ukuya nokusuka kwiPython.
Python -> InterSystems IRIS
Kukho iindlela ezi-4 zokufumana ixabiso lokuguquguquka kwePython kwi-InterSystems IRIS, kuxhomekeke kuluhlu olufunayo:
String
kwiintlobo zedata ezilula kunye nokulungiswa kweempazamo.Repr
ukugcina izinto ezilula kunye nokulungiswa kweempazamo.JSON
ukwenza lula idatha kwicala le-InterSystems IRIS.Pickle
ukugcina izinto.
Ezi ndlela zikuvumela ukuba ubuyise izinto eziguquguqukayo kwiPython njengomtya okanye imisinga.
GetVariable(variable, serialization, .stream, useString)
-fumanaserialization
ukuguquguqukavariable
вstream
. ukubauseString
ngu-1 kwaye ulandelelwano lubekwe kumtya, emva koko umtya uyabuyiswa hayi umsinga.GetVariableJson(variable, .stream, useString)
-fumana uthotho lweJSON lokuguquguquka.GetVariablePickle(variable, .stream, useString, useDill)
-fumana iPickle (okanye iDill) ulandelelwano lwenguqu.
Makhe sizame ukufumana ukuguquguquka kwethu y
.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
Ukulayisha idatha kwi-InterSystems IRIS kwiPython.
ExecuteQuery(query, variable, type, namespace)
- yenza iseti yedatha (ipandasdataframe
okanyelist
) ukusuka kumbuzo wesql kwaye uyibeke kwinguqu yePythonvariable
. Ibhegi yeplastikhiisc.py
kufuneka ibekhona kwindawonamespace
- isicelo siya kwenziwa apho.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)
-ilayisha idatha yehlabathiglobal
ukusuka kumrhumostart
доend
kwiPython njengohlobo oluguquguqukayotype
:list
, okanye iipandadataframe
. Inkcazo yeengxoxo ozikhethelayomask
kwayelabels
ekhoyo kumaxwebhu eklasi kunye nendawo yokugcinaAmaxwebhu okuGqithisela ngeDatha .ExecuteClass(class, variable, type, start, end, properties, namespace)
- ilayisha idatha yeklasiclass
ukusuka kwi-idstart
доend
kwiPython njengohlobo oluguquguqukayotype
:list
, okanye iipandadataframe
.properties
— uluhlu (olwahlulwe ngekoma) lweempawu zeklasi ezifuna ukulayishwa kwiseti yedatha. Iimaski ziyaxhaswa*
и?
. Okuhlala kukho -*
(zonke iipropati). Ipropati%%CLASSNAME
ingahoywa.ExecuteTable(table, variable, type, start, end, properties, namespace)
- ilayisha idatha yetafiletable
ukusuka kwi-idstart
доend
kwiPython.
ExecuteQuery
— jikelele (nawuphi na umbuzo ochanekileyo weSQL uya kudluliselwa kwiPython). Nangona kunjalo, ExecuteGlobal
nezisongelo zayo ExecuteClass
и ExecuteTable
sebenza ngenani lezithintelo. Bakhawuleza kakhulu (i-3-5 amaxesha ngokukhawuleza kunomqhubi we-ODBC kunye namaxesha angama-20 ngokukhawuleza ExecuteQuery
). Ulwazi oluninzi ku
Zonke ezi ndlela zixhasa ukudluliselwa kwedatha kuyo nayiphi na indawo. Ibhegi yeplastikhi isc.py
kufuneka ifumaneke kwindawo ekujoliswe kuyo.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace)
— ukudlulisela iziphumo zawo nawuphi na umbuzo ochanekileyo weSQL kwiPython. Le yeyona ndlela icothayo yokudlulisa idatha. Yisebenzise ukuba ExecuteGlobal
kwaye izisongelo zayo azifumaneki.
Iingxoxo:
query
- sql umbuzo.variable
- igama lePython eguquguqukayo apho idatha ibhalwe khona.type
-list
okanye iiPandadataframe
.namespace
— indawo apho isicelo siya kwenziwa khona.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace)
-ukudlula kwihlabathi kwiPython.
Iingxoxo:
global
- igama lehlabathi ngaphandle^
variable
- igama lePython eguquguqukayo apho idatha ibhalwe khona.type
-list
okanye iiPandadataframe
.start
- umrhumo wokuqala wehlabathi. Ngokuyimfuneko%Integer
.end
- umrhumo wokugqibela wehlabathi. Ngokuyimfuneko%Integer
.mask
- imaski yexabiso yehlabathi. Imaski ingaba mfutshane kunenani leenkalo zehlabathi (apho amasimi ekupheleni aya kutsitywa). Ufomatha njani imaski:+
ligqithise ixabiso njengoko linjalo.-
tsiba ixabiso.b
-Udidi lweBoolean (0
-False
, bonke abanye -True
).d
- Umhla (ukusuka kwi-$horolog, kwiWindows ukusuka kwi-1970, kwi-Linux ukusuka kwi-1900).t
- Ixesha ($ horolog, imizuzwana emva ezinzulwini zobusuku).m
-Isitampu sexesha (umtya wefomati YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
labels
— % Uluhlu lwamagama ekholamu. Into yokuqala ligama lomrhumo.namespace
— indawo apho isicelo siya kwenziwa khona.
ExecuteClass
Gquba ngaphezulu ExecuteGlobal
. Ngokusekelwe kwinkcazo yeklasi, ilungiselela umnxeba ExecuteGlobal
ambize.
ExecuteClass(class, variable, type, start, end, properties, namespace)
-ukudlula idatha yeklasi kwiPython.
Iingxoxo:
class
- igama leklasivariable
- igama lePython eguquguqukayo apho idatha ibhalwe khona.type
-list
okanye iiPandadataframe
.start
— ukuqala ID.end
- i-ID yokugqibelaproperties
— uluhlu (olwahlulwe ngekoma) lweempawu zeklasi ezifuna ukulayishwa kwiseti yedatha. Iimaski ziyaxhaswa*
и?
. Okuhlala kukho -*
(zonke iipropati). Ipropati%%CLASSNAME
ingahoywa.namespace
— indawo apho isicelo siya kwenziwa khona.
Zonke iipropati zigqithiswa njengoko zinjalo ngaphandle kweepropati zodidi %Date
, %Time
, %Boolean
и %TimeStamp
- ziguqulelwa kwiiklasi zePython ezihambelanayo.
ExecuteTable
Gquba ngaphezulu ExecuteClass
. Uguqulela igama letafile kwigama leklasi kunye neefowuni ExecuteClass
. Umsayino:
ExecuteTable(table, variable, type, start, end, properties, namespace)
-ukudlula idatha yetafile kwiPython.
Iingxoxo:
table
- igama letheyibhile.
Zonke ezinye iingxoxo zigqithiswa njengoko kusenziwaExecuteClass
.
Amanqaku
ExecuteGlobal
,ExecuteClass
иExecuteTable
sebenza ngokukhawuleza ngokulinganayo.ExecuteGlobal
Amaxesha angama-20 ngokukhawuleza kunokoExecuteQuery
kwiiseti zedatha enkulu (ixesha lokutshintshela> imizuzwana eyi-0.01).ExecuteGlobal
,ExecuteClass
иExecuteTable
sebenza kwiiglobals ngesi sakhiwo:^global(key) = $lb(prop1, prop2, ..., propN)
aphokey
- inani elipheleleyo.- kuba
ExecuteGlobal
,ExecuteClass
иExecuteTable
uluhlu lwamaxabiso oluxhaswayo%Date
ihambelana noluhlumktime
kwaye kuxhomekeke kwi-OS (windows : 1970-01-01,linux 1900-01-01,IMac ). Sebenzisa%TimeStamp
ukudlulisa idatha ngaphandle kolu luhlu okanye ukusebenzisa i-pandas dataframe kuba olu luluhlu-kuphela umda. - kuba
ExecuteGlobal
,ExecuteClass
иExecuteTable
zonke iingxoxo ngaphandle komthombo wedatha (ihlabathi, iklasi okanye itafile) kunye notshintsho alukhethi.
U mzekelo
Iklasi yovavanyo
set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"
// Общие аргументы
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)
// Способ 0: ExecuteGlobal без аргументов
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)
// Способ 1: ExecuteGlobal с аргументами
// При передаче глобала названия полей задаются вручную
// globalKey - название сабсткрипта
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")
// mask содержит на 1 элемент меньше чем labels потому что "globalKey" - название сабскипта
// Пропускаем %%CLASSNAME
set mask = "-+dmt+++b"
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)
// Способ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)
// Способ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)
// Способ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)
Biza indlela do ##class(isc.py.test.Person).Test()
ukubona ukuba zisebenza njani zonke iindlela zokudlulisa idatha.
Iindlela zoNcedisi
GetVariableInfo(variable, serialization, .defined, .type, .length)
— fumana ulwazi malunga nokuguquguquka: nokuba kuchaziwe, udidi lwayo kunye nobude bolandelelwano.GetVariableDefined(variable, .defined)
— nokuba uguqulo luchaziwe.GetVariableType(variable, .type)
- fumana iklasi yenguqu.GetStatus()
-fumana kwaye ususe ngaphandle kokugqibela kwicala lePython.GetModuleInfo(module, .imported, .alias)
— fumana imodyuli eguquguqukayo kunye nobume bokungenisa elizweni.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)
— fumana ulwazi malunga nomsebenzi.
Ukusebenzisana
Ufundile ukubiza iPython Gateway kwi-terminal, ngoku masiqale ukuyisebenzisa kwimveliso. Isiseko sokusebenzisana nePython kule ndlela isc.py.ens.Operation
. Iyasivumela:
- Yenza ikhowudi kwiPython
- Gcina/Buyisela umxholo wePython
- Layisha kwaye ufumane idatha evela kwiPython
Ngokusisiseko, ukusebenza kwePython kukusonga ngaphezulu isc.py.Main
. Ukusebenza isc.py.ens.Operation
inikeza ukukwazi ukusebenzisana nenkqubo yePython evela kwi-InterSystems iimveliso ze-IRIS. Imibuzo emihlanu iyaxhaswa:
isc.py.msg.ExecutionRequest
ukwenza ikhowudi yePython. Ukubuyiselaisc.py.msg.ExecutionResponse
ngesiphumo sokwenziwa kunye namaxabiso eenguqu eziceliweyo.isc.py.msg.StreamExecutionRequest
ukwenza ikhowudi yePython. Ukubuyiselaisc.py.msg.StreamExecutionResponse
isiphumo sokwenziwa kunye namaxabiso eenguqu eziceliweyo. I-analogueisc.py.msg.ExecutionRequest
, kodwa yamkela kwaye ibuyise imisinga endaweni yemitya.isc.py.msg.QueryRequest
ukuhambisa isiphumo sokwenza umbuzo weSQL. UkubuyiselaEns.Response
.isc.py.msg.GlobalRequest
/isc.py.msg.ClassRequest
/isc.py.msg.TableRequest
yokudlulisa idatha yehlabathi/yeklasi/yetafile. UkubuyiselaEns.Response
.isc.py.msg.SaveRequest
ukugcina umxholo wePython. UkubuyiselaEns.StringResponse
nge-ID yomxholo.-
isc.py.msg.RestoreRequest
ukubuyisela umxholo wePython.Ukongeza,
isc.py.ens.Operation
inesetingi ezimbini:Initializer
— ukukhetha iklasi esebenzisa ujonganoisc.py.init.Abstract
. Ingasetyenziselwa ukulayisha imisebenzi, iimodyuli, iiklasi, njl. Yenziwa kanye xa inkqubo iqala.PythonLib
- (iLinux kuphela) ukuba ubona iimpazamo xa ulayisha, misela ixabiso layolibpython3.6m.so
okanye nakwindlela epheleleyo eya kwithala leencwadi lePython.
Ukudalwa kweenkqubo zoshishino
Kukho iiklasi ezimbini ezikhoyo eziququzelela uphuhliso lweenkqubo zoshishino:
isc.py.ens.ProcessUtils
ikuvumela ukuba ukhuphe amanqakwana kwimisebenzi enotshintsho oluguquguqukayo.isc.py.util.BPEmulator
yenza kube lula ukuvavanya iinkqubo zoshishino ngePython. Inokwenza inkqubo yeshishini (iinxalenye zePython) kwinkqubo yangoku.
Ukutshintsha okuguquguqukayo
Zonke iinkqubo zoshishino ezizuzwe njengelifa isc.py.ens.ProcessUtils
, unokusebenzisa indlela GetAnnotation(name)
ukufumana ixabiso lenkcazo yomsebenzi ngegama layo. Inkcazo yomsebenzi inokuquka izinto eziguquguqukayo eziza kubalwa kwicala le-InterSystems IRIS ngaphambi kokuba idluliselwe kwiPython. Nantsi i-syntax yokutshintsha okuguquguqukayo:
${class:method:arg1:...:argN}
- umnxeba wendlela#{expr}
— yenza ikhowudi ngolwimi lwe-ObjectScript.
Umzekelo uyafumaneka kwinkqubo yovavanyo lweshishini isc.py.test.Process
, umzekelo, kumsebenzi Correlation Matrix: Graph
: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')
. Kulo mzekelo:
#{process.WorkDirectory}
ibuyisela iWorkDirectory ipropathi yentoprocess
, ngumzekelo weklasiisc.py.test.Process
abo. inkqubo yangoku yoshishino.${%PopulateUtils:Integer:1:100}
ubiza indlelaInteger
класса%PopulateUtils
, ukudlula iingxoxo1
и100
, ibuyisela inani elipheleleyo kuluhlu1...100
.
Uvavanyo lwenkqubo yeshishini
Iimveliso zovavanyo kunye neenkqubo zoshishino zovavanyo zifumaneka ngokungagqibekanga njengenxalenye yePython Gateway. Ukuzisebenzisa:
- Kwi-terminal ye-OS, sebenzisa:
pip install pandas matplotlib seaborn
. - Kwi-InterSystems IRIS terminal, sebenzisa:
do ##class(isc.py.test.CannibalizationData).Import()
ukugcwalisa idatha yovavanyo. - Qalisa iimveliso
isc.py.test.Production
. - Thumela uhlobo lwesicelo
Ens.Request
вisc.py.test.Process
.
Makhe sibone ukuba konke kusebenza njani kunye. Vula isc.py.test.Process
kumhleli weBPL:
Ukuphunyezwa kweKhowudi
Owona mceli mngeni ubalulekileyo kukwenza ikhowudi yePython:
Umbuzo osetyenzisiweyo isc.py.msg.ExecutionRequest
, Nazi iimpawu zayo:
Code
- Ikhowudi yePython.SeparateLines
— nokuba uyahlulahlula ikhowudi ibe yilayini ukuze iphunyezwe.$c(10)
(n
) isetyenziselwa ukwahlula iintambo. Nceda qaphela ukuba AKUKUNIKEzwa kucetyiswa ukuba uqhubekisele phambili umyalezo wonke kanye, lo msebenzi wenzelwe kuphela ukuqhubekekadef
kunye nentetho yemigca emininzi efanayo. Ukuhlala kukho0
.Variables
— uluhlu olwahlulwe ngekoma lweziguquguquko eziya kongezwa kwimpendulo.Serialization
— Sizicwangcisa njani iinguqu esifuna ukuzibuyisela. Ukhetho:Str
,Repr
,JSON
,Pickle
иDill
, ehlala ikhoStr
.
Kwimeko yethu, sibeka ipropati kuphela Code
, ngoko ke zonke ezinye iipropati zisebenzisa amaxabiso angagqibekanga. Siyibeke ngokufowuna process.GetAnnotation("Import pandas")
, ethi ngexesha lokuqhuba ibuyisele isichasiselo emva kokutshintshwa okutshintshileyo kwenziwe. Ngapha koko, ikhowudi import pandas as pd
iya kudluliselwa kwiPython. GetAnnotation
kunokuba luncedo ekufumaneni izikripthi zePython ezinemigca emininzi, kodwa akukho zithintelo kule ndlela yokufumana ikhowudi. Ungacwangcisa ipropathi Code
nangayiphi na indlela ekulungeleyo.
Ukufumana iinguqu
Omnye umngeni onomdla wokusebenzisa isc.py.msg.ExecutionRequest
- Correlation Matrix: Tabular
:
Ibala i-Correlation Matrix kwicala lePython kwaye ikhuphe ukuguquguquka corrmat
buyela kwi-InterSystems IRIS kwifomathi ye-JSON ngokucwangcisa iipropati zesicelo:
Variables
:"corrmat"
Serialization
:"JSON"
Sinokuzibona iziphumo kwi-Visual Trace:
Kwaye ukuba sifuna eli xabiso kwiBP, singayifumana ngolu hlobo: callresponse.Variables.GetAt("corrmat")
.
Ukuhanjiswa kwedatha
Okulandelayo, makhe sithethe ngokugqithisela idatha ukusuka kwi-InterSystems IRIS ukuya kwiPython; zonke izicelo zokudluliselwa kwedatha zisebenzisa ujongano. isc.py.msg.DataRequest
ebonelela ngezi propati zilandelayo:
Variable
— iPython eguquguqukayo apho kubhalwe khona idatha.Type
- uhlobo oluguquguqukayo:dataframe
(pandas dataframe) okanyelist
.Namespace
— indawo esifumana kuyo idatha. Ibhegi yeplastikhiisc.py
kufuneka ibekhona kule ndawo. Oku kunokuba yindawo ngaphandle kwenkxaso yemveliso.
Ngokusekwe kolu jongano, iiklasi ezi-4 zezicelo ziphunyeziwe:
isc.py.msg.QueryRequest
- misela ipropatiQuery
ukuthumela umbuzo weSQL.isc.py.msg.ClassRequest
- misela ipropatiClass
ukudlulisa idatha yeklasi.isc.py.msg.TableRequest
- cwangcisa ipropatiTable
ukudlulisa idatha yetafile.isc.py.msg.GlobalRequest
- cwangcisa ipropatiGlobal
kugqithiso lwedatha yehlabathi.
Kwinkqubo yovavanyo, jonga umsebenzi RAW
phi isc.py.msg.QueryRequest
iboniswe ngesenzo.
Ukugcina / Ukubuyisela Umxholo wePython
Ekugqibeleni, sinokugcina umxholo wePython kwi-InterSystems IRIS, ukwenza oku siya kuthumela isc.py.msg.SaveRequest
ngeengxoxo:
Mask
— Kuphela ziinguqu ezihambelana nemaski ezigciniweyo. Ixhasiwe*
и?
. Umzekelo:"Data*, Figure?"
. Ukuhlala kukho*
.MaxLength
- Ubude obuninzi benguqu egciniweyo. Ukuba ulandelelwano lwenguquko lude, aluyi kuhoywa. Cwangcisa ku-0 ukufumana iinguqu zabo nabuphi na ubude. Ukuhlala kukho$$$MaxStringLength
.Name
— Igama lomxholo (uyazikhethela).Description
- Inkcazo yomxholo (ukhetho).
Iyabuya Ens.StringResponse
с Id
umxholo ogciniweyo. Kwinkqubo yovavanyo, jonga umsebenzi Save Context
.
Isicelo esinxulumeneyo isc.py.msg.RestoreRequest
ilayisha umxholo ukusuka kwi-InterSystems IRIS kwiPython:
ContextId
- into ebonisa umxholo.Clear
- cima umxholo ngaphambi kokubuyisela.
Incwadana yokubhalela kaJupyter
Olu lwandiso luthatha ukuba amanqakwana anekhowudi yePython kwaye isebenzisa amagama omsebenzi njengezihloko ezandulelayo. Ngoku kunokwenzeka ukuphuhlisa iinkqubo zoshishino zePythonGateway kwiJupyter Notebook. Nantsi into enokwenzeka:
- Yenza iinkqubo ezintsha zoshishino
- Cima iinkqubo zoshishino
- Yenza imisebenzi emitsha
- Guqula imisebenzi
- Cima imisebenzi
Apha
Inkqubo yoMhloli
Umhleli wenkqubo
isicwangciso
- Uya kufuna i-InterSystems IRIS 2019.2+.
- Faka iPythonGateway v0.8+ (ifuneka kuphela
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
иisc.py.ens.ProcessUtils
). - Hlaziya ikhowudi ye-ObjectScript kwindawo yokugcina.
- Baleka
do ##class(isc.py.util.Jupyter).Install()
kwaye ulandele imiyalelo.
ezifunyanisiweyo
I-MLToolkit yiseti yezixhobo ezinjongo yazo ikukudibanisa imodeli kunye nemeko yentengiselwano ukuze iimodeli ezakhiweyo zisetyenziswe ngokulula kwiinkqubo zakho zoshishino. I-Python Gateway yinxalenye yeMLToolkit kwaye ibonelela ngokudityaniswa nolwimi lwePython, ikuvumela ukuba ulungelelanise naziphi na iialgorithms zokufunda zoomatshini ezenziwe kwiPython (eyona ndawo iphambili yeeNzululwazi ezininzi zeData), sebenzisa amathala eencwadi amaninzi esele yenziwe ukwenza ngokukhawuleza uhlengahlengiso, uhlalutyo lwerobhothi AI / Izisombululo zeML kwi-InterSystems iqonga IRIS.
iimbekiselo
Inqaku elidlulileyo Isango lePython Iisampulu zePython Gateway Convergent-Analytics Python 3.6.7 64 bit Amaxwebhu ePython kunye nezifundo
MLToolkit
Iqela labasebenzisi beMLToolkit yindawo yokugcina yeGitHub eyenziwe njengenxalenye yombutho we-InterSystems weGitHub. Yenzelwe abasebenzisi bangaphandle abafakela, bafunde, okanye sele besebenzisa amacandelo eMLToolkit, kuquka nePython Gateway. Iqela linamatyala amaninzi aphunyeziweyo (kunye nekhowudi yomthombo kunye neenkcukacha zokuvavanya) kwiinkalo zokuthengisa, ukuvelisa, amayeza kunye namanye amashishini amaninzi. Ukujoyina iQela labasebenzisi be-ML Toolkit, nceda uthumele i-imeyile emfutshane kule dilesi ilandelayo:
- Igama lomsebenzisi leGitHub
- Umbutho (usebenza okanye ufunda)
- Isikhundla (indawo yakho yokwenyani kumbutho wakho, nokuba "nguMfundi" okanye "oZimeleyo").
- ilizwe
Kwabo bafunde inqaku kwaye banomdla kwizakhono ze-InterSystems IRIS njengeqonga lokuphuhlisa okanye lokubamba ubukrelekrele bokwenziwa kunye neenjini zokufunda koomatshini, siyakumema ukuba uxoxe ngeemeko ezinokwenzeka ezinomdla kwishishini lakho. Siya konwaba ukuhlalutya iimfuno zenkampani yakho kwaye sigqibe ngokudibeneyo isicwangciso somsebenzi; Idilesi ye-imeyile ye-AI/ML yeqela lethu leengcaphephe-
umthombo: www.habr.com