99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀機(jī)器學(xué)習(xí)工程師第一年的 12 點(diǎn)體會(huì)
機(jī)器學(xué)習(xí)工程師第一年的 12 點(diǎn)體會(huì)
2019-11-26
收藏
<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

作者 | 人工智能大數(shù)據(jù)與深度學(xué)習(xí)

來(lái)源 | Datawhale

機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)都是廣義上的術(shù)語(yǔ),它們涉及超級(jí)多的領(lǐng)域以及知識(shí),一位數(shù)據(jù)科學(xué)家所做的事情可能與另一位有很大的不同,機(jī)器學(xué)習(xí)工程師也是如此。通常使用過(guò)去(數(shù)據(jù))來(lái)理解或預(yù)測(cè)(構(gòu)建模型)未來(lái)。

為了將上面剛剛提到的要點(diǎn)融入上下文中,我必須要解釋我的角色是什么。曾經(jīng)我待在一個(gè)小機(jī)器學(xué)習(xí)咨詢(xún)團(tuán)隊(duì)。我們做到了從數(shù)據(jù)收集到清洗、構(gòu)建模型再到你能想到的多個(gè)行業(yè)的服務(wù)部署。因?yàn)閳F(tuán)隊(duì)很小,所以每個(gè)人頭上都有很多頭銜。

機(jī)器學(xué)習(xí)工程師的日常:

早上9點(diǎn),我走進(jìn)辦公室,向同事問(wèn)好,把食物放在冰箱里,倒一杯咖啡,走到我的辦公桌前。然后我坐下來(lái),看看前一天的筆記,打開(kāi)Slack,閱讀未讀的消息并打開(kāi)團(tuán)隊(duì)共享的論文或博客文章鏈接,因?yàn)檫@個(gè)領(lǐng)域發(fā)展很快,所以要多看一些前沿的東西。

我通常都是在讀完未讀消息后,會(huì)花一點(diǎn)時(shí)間來(lái)瀏覽論文和博客文章,并仔細(xì)研究那些理解起來(lái)困難的內(nèi)容。不得不說(shuō)這其中,有一些內(nèi)容對(duì)我正在做的工作有很大的幫助。一般來(lái)說(shuō),閱讀會(huì)花費(fèi)我大概一個(gè)小時(shí)甚至更久,這取決于文章本身。有些朋友會(huì)問(wèn)我為什么這么久?

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

在我看來(lái),閱讀是一種終極元技能。因?yàn)橐坏┯懈玫姆绞絹?lái)完成我當(dāng)前在做的事情,我會(huì)立即通過(guò)學(xué)習(xí)使用它,從而節(jié)約更多的時(shí)間和精力。但也有特殊情況,如果有一個(gè)項(xiàng)目的截止日期臨近,那么我將把閱讀時(shí)間縮短來(lái)推進(jìn)該項(xiàng)目。

完成閱讀之后,我會(huì)檢查前一天的工作,檢查我的記事本,看看我需要從什么地方開(kāi)始工作,為什么我可以這樣做?因?yàn)槲业挠浭卤臼橇魉~式的日記。

例如:「將數(shù)據(jù)處理為正確格式,現(xiàn)在需要在模型中訓(xùn)練這些數(shù)據(jù)?!谷绻以诠ぷ鬟^(guò)程中遇到了困難,則會(huì)寫(xiě)下類(lèi)似于:「發(fā)生了數(shù)據(jù)不匹配的情況,接下來(lái)我將嘗試修復(fù)混合匹配,并在嘗試新模型之前獲得基線。」

大約在下午4點(diǎn)的時(shí)候我會(huì)整理一下我的代碼,大概涉及:讓混亂代碼變得清晰,添加注釋?zhuān)M合。為什么要這樣做?因?yàn)檫@個(gè)問(wèn)題我經(jīng)常會(huì)問(wèn)自己:如果其他人看不懂這個(gè)怎么辦?如果是我要讀這段代碼,我最需要什么?有了這樣的思考后,我覺(jué)得花費(fèi)一段時(shí)間來(lái)整理代碼變的格外有意義。大約在下午5點(diǎn),我的代碼應(yīng)該會(huì)被上傳到GitHub上。

這是理想的一天,但并不是每一天都是如此。有時(shí)候你會(huì)在下午4點(diǎn)有一個(gè)極好的想法,然后跟隨它,然后就有可能是通宵。

現(xiàn)在你應(yīng)該已經(jīng)大致了解了機(jī)器學(xué)習(xí)工程師一天的日常了吧,接下來(lái)我會(huì)將我在其中獲得的心得分享給你:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

1.睜眼閉眼全是數(shù)據(jù)

很多時(shí)候,機(jī)器學(xué)習(xí)工程師都會(huì)專(zhuān)注于構(gòu)建更好的模型,而不是改進(jìn)構(gòu)建它的數(shù)據(jù)。盡管可以通過(guò)投入足夠的計(jì)算能力讓模型提供令人興奮的短期結(jié)果,但這始終不會(huì)是我們想要的目標(biāo)。

首次接觸項(xiàng)目時(shí),必須要花費(fèi)大量時(shí)間熟悉數(shù)據(jù)。因?yàn)閺拈L(zhǎng)遠(yuǎn)來(lái)看,熟悉這些數(shù)據(jù)在未來(lái)會(huì)將節(jié)省你更多的時(shí)間。

這并不意味著你不應(yīng)該從細(xì)節(jié)著手,對(duì)于任何新數(shù)據(jù)集,你的目標(biāo)應(yīng)該是成為這方面的「專(zhuān)家」。檢查分布、找到不同類(lèi)型的特征、異常值、為什么它們是異常值等等此類(lèi)問(wèn)題。如果你無(wú)法講出當(dāng)前這些數(shù)據(jù)的故事,那又怎么讓模型更好的處理這些數(shù)據(jù)呢?

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

探索性數(shù)據(jù)分析生命周期的示例(每次遇到新數(shù)據(jù)集時(shí)都會(huì)執(zhí)行的操作)。更多關(guān)于探索性數(shù)據(jù)分析的詳細(xì)介紹。

2.溝通比解決技術(shù)問(wèn)題更難

我遇到的大多數(shù)障礙都不是技術(shù)性的,而是涉及到溝通問(wèn)題。當(dāng)然,這其中也存在技術(shù)挑戰(zhàn),但作為工程師解決技術(shù)難題是我們的本職工作。

但永遠(yuǎn)不要低估內(nèi)部和外部溝通的重要性。沒(méi)有什么比技術(shù)選型錯(cuò)誤更糟的了,因?yàn)檫@是要解決錯(cuò)誤的技術(shù)挑戰(zhàn)。到底什么情況會(huì)出現(xiàn)這樣的情況呢?

從外部來(lái)看,這是因?yàn)榭蛻?hù)所追求的與我們可以提供的東西之間的不匹配。而在內(nèi)部,因?yàn)楹芏嗳硕忌砑鏀?shù)職,所以很難確保每個(gè)人都可以全身貫注于一件事情。

碰到這些問(wèn)題時(shí)到底如何解決呢?

對(duì)于外部問(wèn)題,我們只能不斷的與客戶(hù)溝通。你的客戶(hù)是否了解你可以提供的服務(wù)?你了解你的客戶(hù)的需求嗎?他們是否了解機(jī)器學(xué)習(xí)可以提供什么以及它不能提供什么?怎么樣才能更有效的傳達(dá)你的想法?

對(duì)于內(nèi)部問(wèn)題,你可以根據(jù)我們使用解決問(wèn)題的軟件工具的數(shù)量來(lái)判斷內(nèi)部通信有多難:Asana,Jira,Trello,Slack,Basecamp,Monday,Microsoft Teams。我找到的最有效的方法之一是在一天結(jié)束時(shí)在相關(guān)項(xiàng)目頻道中進(jìn)行簡(jiǎn)單的消息更新。

它完美嗎?不,但似乎有效。它給了我一個(gè)機(jī)會(huì)來(lái)反思我做了什么,并告訴大家我接下來(lái)的什么工作需要誰(shuí)的支持,甚至可以從大家那里得到建議。

無(wú)論你是多么優(yōu)秀的工程師,你維持和獲得新業(yè)務(wù)的能力都與你溝通的技能能力有關(guān)。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

3.穩(wěn)定性>最先進(jìn)的技術(shù)

現(xiàn)在有一個(gè)自然語(yǔ)言問(wèn)題:將文本分類(lèi)到不同的類(lèi)別,目標(biāo)是讓用戶(hù)將一段文本發(fā)送到服務(wù)并將其自動(dòng)分類(lèi)為兩個(gè)類(lèi)別之一。如果模型對(duì)預(yù)測(cè)沒(méi)有信心,請(qǐng)將文本傳遞給人類(lèi)分類(lèi)器,每天的負(fù)載約為1000-3000個(gè)請(qǐng)求。

BERT雖然在最近一年很火。但是,如果沒(méi)有谷歌那樣規(guī)模的計(jì)算,用BERT訓(xùn)練模型來(lái)解決我們想要解決的問(wèn)題時(shí)還是很復(fù)雜的,因?yàn)樵谕度肷a(chǎn)之前,我們需要修改很多內(nèi)容。相反,我們使用了另一種方法ULMFiT,盡管它不是最先進(jìn)的,但仍然可以得到令人滿(mǎn)意的結(jié)果,并且更容易使用。

4.機(jī)器學(xué)習(xí)初學(xué)者最常見(jiàn)的兩個(gè)坑

機(jī)器學(xué)習(xí)運(yùn)用到實(shí)際生產(chǎn)中存在兩個(gè)坑:一是從課程工作到項(xiàng)目工作的差距,二是從筆記本中的模型到生產(chǎn)模型(模型部署)的差距。

我在互聯(lián)網(wǎng)上學(xué)習(xí)機(jī)器學(xué)習(xí)課程,以此來(lái)完成自己的AI碩士學(xué)位。但即使在完成了許多最好的課程之后,當(dāng)我開(kāi)始擔(dān)任機(jī)器學(xué)習(xí)工程師時(shí),我發(fā)現(xiàn)我的技能是建立在課程的結(jié)構(gòu)化主干上,而項(xiàng)目并沒(méi)有課程那樣井井有條。

我缺乏很多在課程中無(wú)法學(xué)到的具體的知識(shí),例如:如何質(zhì)疑數(shù)據(jù),探索什么數(shù)據(jù)與利用什么數(shù)據(jù)。

如何彌補(bǔ)這個(gè)缺陷呢?我很幸運(yùn)能夠成為澳大利亞最優(yōu)秀的人才,但我也愿意學(xué)習(xí)并愿意做錯(cuò)。當(dāng)然,錯(cuò)誤不是目標(biāo),但為了正確,你必須弄清楚什么是錯(cuò)的。

如果你正在通過(guò)一門(mén)課程學(xué)習(xí)機(jī)器學(xué)習(xí),那么繼續(xù)學(xué)習(xí)這門(mén)課程,不過(guò)你需要通過(guò)自己的項(xiàng)目來(lái)學(xué)習(xí)你正在學(xué)習(xí)的知識(shí),從而彌補(bǔ)課程中的不足。

至于如何進(jìn)行部署?在這點(diǎn)上我仍然做的不是很好。還好我注意到了一種趨勢(shì):機(jī)器學(xué)習(xí)工程和軟件工程正在融合。通過(guò)像Seldon,Kubeflow和Kubernetes這樣的服務(wù),很快機(jī)器學(xué)習(xí)將成為堆棧的另一部分。在Jupyter中構(gòu)建模型是很簡(jiǎn)單的,但是如何讓數(shù)千甚至數(shù)百萬(wàn)人使用該模型?這才是機(jī)器學(xué)習(xí)工程師應(yīng)該思考的事情,這也是機(jī)器學(xué)習(xí)創(chuàng)造價(jià)值的前提。但是,根據(jù)最近在Cloud Native活動(dòng)上的討論情況來(lái)看,大公司以外的人并不知道如何做到這一點(diǎn)。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

5. 20%的時(shí)間

20%的時(shí)間,這意味著我們20%的時(shí)間都花在了學(xué)習(xí)上??陀^意義上,學(xué)習(xí)是一個(gè)松散的術(shù)語(yǔ),只要是關(guān)于機(jī)器學(xué)習(xí)的都可以納入到學(xué)習(xí)范疇內(nèi),相關(guān)業(yè)務(wù)也要不斷的學(xué)習(xí),作為機(jī)器學(xué)習(xí)工程師,懂業(yè)務(wù)可以極大的提高你的工作效率。

如果你的業(yè)務(wù)優(yōu)勢(shì)在于你現(xiàn)在所做的最好,那么未來(lái)的業(yè)務(wù)取決于你繼續(xù)做你最擅長(zhǎng)的事情,這意味著需要不斷學(xué)習(xí)。

6.十分之一的論文值得閱讀,但少用

這是一個(gè)粗略的指標(biāo)。但是,探索任何數(shù)據(jù)集或者模型時(shí),你很快就會(huì)發(fā)現(xiàn)這個(gè)規(guī)律是普遍存在的。換句話說(shuō),在每年數(shù)以千計(jì)的提交中,你可能會(huì)得到10篇開(kāi)創(chuàng)性的論文。在這10篇開(kāi)創(chuàng)性的論文中,有5篇可能來(lái)自于同一所研究所或者個(gè)人。

你無(wú)法跟上每一個(gè)新的突破,但可以在基本原則的堅(jiān)實(shí)基礎(chǔ)應(yīng)用它們,這些基本原則經(jīng)受住了時(shí)間的考驗(yàn)。

接下來(lái)是探索與開(kāi)發(fā)的問(wèn)題。

7. 成為你自己最大的質(zhì)疑者

探索與開(kāi)發(fā)問(wèn)題是嘗試新事物和已經(jīng)發(fā)揮作用事物之間的兩難選擇,你可以通過(guò)成為自己最大的懷疑者來(lái)處理這些問(wèn)題。不斷的向自己提問(wèn),選擇這些取代舊的可以帶來(lái)哪些好處?

開(kāi)發(fā)

一般來(lái)說(shuō),運(yùn)行你已經(jīng)使用過(guò)的模型并獲得高精度數(shù)字很容易,然后可以將其作為新基準(zhǔn)報(bào)告給團(tuán)隊(duì)。但是如果你得到了一個(gè)好的結(jié)果,記得檢查你的工作,并再次讓你的團(tuán)隊(duì)也這樣做。因?yàn)槟闶且幻こ處?,你?yīng)該有這樣的意識(shí)。

探索

20%的時(shí)間花費(fèi)在探索上是一個(gè)不錯(cuò)的決定,但是如果是70/20/10可能會(huì)更好。這意味著你需要在核心產(chǎn)品上花費(fèi)70%的時(shí)間,在核心產(chǎn)品的二次開(kāi)發(fā)上花費(fèi)20%,在moonshots(未來(lái)要用的事情)上花費(fèi)10%,雖然這些東西可能不會(huì)立即起作用。說(shuō)起來(lái)很慚愧,我從來(lái)沒(méi)有在我的角色中練習(xí)這個(gè),但這是我正朝著這個(gè)方向發(fā)展的。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

8.“玩具問(wèn)題”非常有用

玩具問(wèn)題可以幫你理解很多問(wèn)題,特別是幫助解決一個(gè)復(fù)雜的問(wèn)題。首先先建立一個(gè)簡(jiǎn)單的問(wèn)題,它可能是關(guān)于你的數(shù)據(jù)或不相關(guān)數(shù)據(jù)集的一小部分。找出這個(gè)問(wèn)題的解決方法,然后把他擴(kuò)展到整個(gè)數(shù)據(jù)集中。在一個(gè)小團(tuán)隊(duì)中,處理問(wèn)題的訣竅是抽象問(wèn)題,然后理出頭緒解決。

9.橡皮鴨

如果你遇到問(wèn)題,坐下來(lái)盯著代碼可能會(huì)解決問(wèn)題,可能不會(huì)。這時(shí),如果同你的同事探討一下,假裝他們是你的橡皮鴨,那么問(wèn)題可能很容易就被解決了。

“Ron,我正在嘗試遍歷這個(gè)數(shù)組,并在循環(huán)通過(guò)另一個(gè)數(shù)組并跟蹤狀態(tài),然后我想將這些狀態(tài)組合成一個(gè)元組列表?!?/span>

“循環(huán)中的循環(huán)?你為什么不把它矢量化呢?“

“我能這樣做嗎?”

“讓我們來(lái)嘗試下吧?!?/span>

10.從0開(kāi)始構(gòu)建的模型數(shù)量正在下降

這與機(jī)器學(xué)習(xí)工程與軟件工程正在融合有關(guān)。

除非你的數(shù)據(jù)問(wèn)題非常具體,否則許多問(wèn)題非常相似,分類(lèi)、回歸、時(shí)間序列預(yù)測(cè)、建議。

谷歌和微軟的AutoML等服務(wù)正在為每個(gè)可以上傳數(shù)據(jù)集并選擇目標(biāo)變量的人提供世界一流的機(jī)器學(xué)習(xí)。在面向開(kāi)發(fā)人員方面,有像fast.ai這樣的庫(kù),它們可以在幾行代碼中提供最先進(jìn)的模型,以及各種模型動(dòng)畫(huà)(一組預(yù)先構(gòu)建的模型),如PyTorch hub和TensorFlow集線器提供相同的功能。

這意味著我們不需要了解數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的更深層次原理,只需要知道他們的基本原理即可,我們應(yīng)該更關(guān)心如何將它們應(yīng)用到實(shí)際問(wèn)題中去創(chuàng)造價(jià)值。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>工程師第一年的 12 點(diǎn)體會(huì)

11.數(shù)學(xué)還是代碼?

對(duì)于我所處理的客戶(hù)問(wèn)題,我們都是代碼優(yōu)先,而且所有的機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)代碼都是Python。有時(shí)我會(huì)通過(guò)閱讀論文并復(fù)現(xiàn)它來(lái)涉足數(shù)學(xué),但是現(xiàn)有的框架大都包含了數(shù)學(xué)。這并不是說(shuō)數(shù)學(xué)是不必要的,畢竟機(jī)器學(xué)習(xí)深度學(xué)習(xí)都是應(yīng)用數(shù)學(xué)的形式。

掌握最小矩陣的操作、一些線性代數(shù)和微積分,特別是鏈?zhǔn)椒▌t足以成為一個(gè)機(jī)器學(xué)習(xí)從業(yè)者。

請(qǐng)記住,大多數(shù)時(shí)候或者大多數(shù)從業(yè)者的目標(biāo)不是發(fā)明一種新的機(jī)器學(xué)習(xí)算法,而是向客戶(hù)展示潛在的機(jī)器學(xué)習(xí)對(duì)他們的業(yè)務(wù)有沒(méi)有幫助。

12.你去年所做的工作明年可能會(huì)無(wú)效

這是大趨勢(shì),因?yàn)檐浖こ毯?a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)工程的融合,這種情況正在變得越來(lái)越明顯。

但這也是你進(jìn)入這個(gè)行業(yè)的原因,框架將發(fā)生變化,各種實(shí)用庫(kù)將發(fā)生變化,但基礎(chǔ)統(tǒng)計(jì)數(shù)據(jù)、概率學(xué)、數(shù)學(xué)、這些事情都是不變的。最大的挑戰(zhàn)仍然是:如何應(yīng)用它們創(chuàng)造價(jià)值。

現(xiàn)在怎么辦?機(jī)器學(xué)習(xí)工程師的成長(zhǎng)道路上應(yīng)該還有很多坑需要去探,如果你是一個(gè)新手,先掌握這12條就足夠了。

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }