精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何用深度學(xué)習(xí)將前端設(shè)計(jì)模型自動轉(zhuǎn)換為代碼?

人工智能 深度學(xué)習(xí) 前端
目前,自動化前端開發(fā)的最大障礙是計(jì)算能力。不過,我們可以使用當(dāng)前的深度學(xué)習(xí)算法和人造的訓(xùn)練數(shù)據(jù)來探索人工前端自動化。在這篇文章中,我們將教會一個神經(jīng)網(wǎng)絡(luò)如何基于一張?jiān)O(shè)計(jì)原型圖片來編寫基本的 HTML 和 CSS 代碼。

[[223504]]

目前,自動化前端開發(fā)的最大障礙是計(jì)算能力。不過,我們可以使用當(dāng)前的深度學(xué)習(xí)算法和人造的訓(xùn)練數(shù)據(jù)來探索人工前端自動化。

在這篇文章中,我們將教會一個神經(jīng)網(wǎng)絡(luò)如何基于一張?jiān)O(shè)計(jì)原型圖片來編寫基本的 HTML 和 CSS 代碼。以下是該過程的簡要概述:

1)為神經(jīng)網(wǎng)絡(luò)提供的設(shè)計(jì)圖

2)神經(jīng)網(wǎng)絡(luò)將圖片轉(zhuǎn)化成 HTML 代碼

3)渲染輸出

我們將通過三次迭代來構(gòu)建神經(jīng)網(wǎng)絡(luò)。

第一次迭代得到的是最基礎(chǔ)的版本,先了解圖樣中的活動部件。第二次迭代得到的是 HTML 代碼,將著重于自動化所有步驟,并解釋神經(jīng)網(wǎng)絡(luò)層。最后一次迭代得到的是 bootstrap 版本,我們將創(chuàng)建一個模型可用于泛化和探索 LSTM 層。

所有的代碼都放在了 Github 和 FloydHub 上。

這些模型是基于 Beltramelli 的 pix2code 論文和 Jason Brownlee 的圖像自然語言描述教程而構(gòu)建的,代碼使用 Python 和 Keras(一個基于 Tensorflow 的框架)編寫。

如果你是剛接觸深度學(xué)習(xí)的新手,建議你先大概了解下 Python,反向傳播和卷積神經(jīng)網(wǎng)絡(luò)。

 

核心邏輯   

 

 

讓我們再簡明扼要地復(fù)述下我們的目標(biāo)。我們想構(gòu)建一個神經(jīng)網(wǎng)絡(luò),生成與屏幕截圖對應(yīng)的 HTML/CSS 代碼。

在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,你可以給它幾個截圖和與之對應(yīng)的 HTML 代碼。

在學(xué)習(xí)過程中,它會逐一預(yù)測所有匹配的 HTML 標(biāo)簽。在預(yù)測下一個標(biāo)簽時,它會接收到屏幕截圖以及在那一個點(diǎn)上所有匹配的標(biāo)簽。

這個 Google Sheet 包含了一個簡單的訓(xùn)練數(shù)據(jù)樣本。

創(chuàng)建一個能夠逐字預(yù)測的模型是現(xiàn)在最常見的方式,也是我們在這個教程中將會使用的方式,雖然還有其他的方式。

請注意,對于每次預(yù)測,神經(jīng)網(wǎng)絡(luò)得到的都是相同的截圖。也就是說,如果要預(yù)測 20 個單詞的話,它將會收到相同的圖樣 20 次。在現(xiàn)在這個階段,請不要擔(dān)心神經(jīng)網(wǎng)絡(luò)的工作原理,而是著重關(guān)注神經(jīng)網(wǎng)絡(luò)的輸入輸出。

讓我們看下之前的標(biāo)簽。假設(shè)我們要訓(xùn)練網(wǎng)絡(luò)來預(yù)測“I can code”這句話。當(dāng)它收到“I”的時候,它能預(yù)測到“can”。下一次,它將收到“I can”,并且預(yù)測到“code”。每次它會收到之前所有的單詞,并且只需預(yù)測接下來的一個單詞。

A

神經(jīng)網(wǎng)絡(luò)從數(shù)據(jù)中創(chuàng)建出不同的特征,用于連接輸入和輸出數(shù)據(jù),創(chuàng)建模型,以便理解每張截圖中所包含的內(nèi)容和 HTML 語法,這就得到了預(yù)測下一個標(biāo)簽所需要的知識。

在將訓(xùn)練過的模型用在現(xiàn)實(shí)當(dāng)中時,情況跟訓(xùn)練模型時差不多。每次使用相同的屏幕截圖逐一生成文本。不同的是,現(xiàn)在它不會直接收到正確的 HTML 標(biāo)簽,而是會收到它迄今為止已經(jīng)生成的標(biāo)簽,然后去預(yù)測下一個標(biāo)簽。整個預(yù)測的過程會從“起始標(biāo)簽”開始,在預(yù)測到“結(jié)束標(biāo)簽”或達(dá)到最大限度時終止。

 

 

Hello World

 

 

讓我們開始構(gòu)建一個 Hello World 的版本。我們將為神經(jīng)網(wǎng)絡(luò)提供一個顯示有“Hello World!”的網(wǎng)頁截圖,并且訓(xùn)練它生成對應(yīng)的標(biāo)簽。

首先,神經(jīng)網(wǎng)絡(luò)將圖樣映射成一組像素值列表。每個像素點(diǎn)有 RGB 三個通道,每個通道的值都在 0-255 之間。

為了讓神經(jīng)網(wǎng)絡(luò)理解這些標(biāo)記,我使用了獨(dú)熱編碼(one hot encoding)。因此“I can code”這一句就可以映射成:

上圖中包含了開始和結(jié)束標(biāo)簽。這些標(biāo)簽控制著神經(jīng)網(wǎng)絡(luò)預(yù)測的開始和結(jié)束時間。

對于輸入數(shù)據(jù),我們將用不同的句子,從第一個單詞開始,然后逐步添加每個單詞。輸出的數(shù)據(jù)總是一個單詞。

句子遵循與單詞相同的邏輯。它們也需要相同的輸入長度,但是在這里我們限制的是句子最大的長度,而不是單詞的數(shù)量。如果句子比最大長度短,則用空詞填充它,空詞完全由零組成。

正如所看到的,單詞都是從右向左打印出來的。這樣的話,每次訓(xùn)練都會迫使每個單詞改變自己的位置,這樣模型就可以記住單詞順序而不是每個單詞的位置。

在下圖中有四次預(yù)測,每一行表示一次預(yù)測。從左邊起,是以 RGB 通道表示的圖像:紅色、綠色和藍(lán)色,還有之前提到過的單詞。括號之外,是一個接一個的預(yù)測,最后以紅色方塊結(jié)束。

在 Hello World 版本中,我們用了三個記號:“start”、“Hello World!”和“end”。記號可以是任何東西,它可以是一個字符、單詞或句子。雖然使用字符記號需要更少的詞匯量,但會限制神經(jīng)網(wǎng)絡(luò)。單詞記號往往有最好的表現(xiàn)。

這里我們做出了預(yù)測:

 

 

輸出

 

 

 

  • 10 epochs:start start start

  • 100 epochs: start <HTML><center><H1>Hello World!</H1></center></HTML> <HTML><center><H1>Hello World!</H1></center></HTML>

  • 300 epochs: start <HTML><center><H1>Hello World!</H1></center></HTML> end

 

 

我掉過的坑:

 

 

  • 在收集數(shù)據(jù)之前構(gòu)建了第一個版本。 在這個項(xiàng)目的早期,我想辦法從 Geocities 網(wǎng)站獲得了一個舊的存檔副本,其中包含 3800 萬多個網(wǎng)站。不過,當(dāng)時我被數(shù)據(jù)沖昏了頭腦,卻忽視了縮減 100K 詞匯所需要的巨大工作量。

  • 處理 TB 級的數(shù)據(jù)需要很好的硬件或者極大的耐心。 在用我的 Mac 電腦運(yùn)行出現(xiàn)了幾次問題以后,最后選擇了功能強(qiáng)大的遠(yuǎn)程服務(wù)器。為了保持工作的順暢,預(yù)計(jì)我將會租用包含 8 核 CPU 和一個 1GPS 網(wǎng)絡(luò)連接的遠(yuǎn)程測試機(jī)組。

  • 在我明白輸入和輸出之前,很多東西都說不通。 輸入 X 是屏幕截圖和之前已經(jīng)預(yù)測的標(biāo)簽,輸出 Y 是下一個要預(yù)測標(biāo)簽。當(dāng)我明白這個以后,理解它們之間的關(guān)系就更容易了,而且構(gòu)建不同的構(gòu)架也更容易了。

  • 小心兔子洞陷阱。 因?yàn)檫@個項(xiàng)目跟深度學(xué)習(xí)的很多領(lǐng)域都有交叉,在研究的過程中我好多次都陷入對其他領(lǐng)域的研究中。我花了一周的時間從頭開始編寫 RNN,過度著迷于向量空間,又被其他的實(shí)現(xiàn)所迷惑。

  • 圖片到編碼網(wǎng)絡(luò)其實(shí)就是 Image Caption 模型。 但即使我已經(jīng)意識到了這點(diǎn),我仍然忽略了很多有關(guān) Image Caption 的論文,只是因?yàn)橛X得它們沒有那么酷。當(dāng)我發(fā)現(xiàn)到這點(diǎn)后,我加快了對問題的了解。

 

在 Floydhub 平臺上運(yùn)行代碼 

 

Floydhub 是一個深度學(xué)習(xí)訓(xùn)練平臺。在我剛開始接觸深度學(xué)習(xí)時,才知道有這個平臺。從那以后,我都在用它來訓(xùn)練和管理深度學(xué)習(xí)試驗(yàn)。你可以在 10 分鐘內(nèi)安裝它并且運(yùn)行你的第一個模型。這是在云端 GPU 上訓(xùn)練模型的最佳選擇。

如果你是剛接觸 Floydhub,推薦你去看下他們的 2 分鐘安裝教程和我的 5 分鐘概覽教程。

復(fù)制倉庫: 

登錄并啟動 FloydHub 命令行工具: 

在 FloydHub 的云 GPU 機(jī)器上運(yùn)行 Jupyter notebook: 

所有的 notebook 都在 FloydHub 目錄中準(zhǔn)備好了。運(yùn)行起來之后,你可以在這里找到第一個 notebook:floydhub/Helloworld/helloworld.ipynb。

如果想要更多詳細(xì)的指導(dǎo)和標(biāo)記說明,請參閱我早期寫的文章。

 

HTML 版本

 

 

在這個版本中,我們將會自動化 Hello world 中的很多步驟。這一章節(jié)將主要關(guān)注如何創(chuàng)建一個可伸縮的實(shí)現(xiàn)和神經(jīng)網(wǎng)絡(luò)中的動態(tài)部分。

雖然這個版本還無法基于隨機(jī)網(wǎng)站來預(yù)測 HTML,但它仍然很適合用于對問題的動態(tài)部分進(jìn)行探索。

 

 

 

 

概覽

 

 

下圖所示的是構(gòu)架組件展開后的樣子。

主要有兩個部分,編碼器和解碼器。編碼器用于創(chuàng)建圖像特征和標(biāo)簽特征。特征是由網(wǎng)絡(luò)創(chuàng)建用來連接圖樣和標(biāo)簽的基本構(gòu)建塊。在編碼的最后階段,我們將圖像特征和前一個標(biāo)簽中的單詞關(guān)聯(lián)起來。

然后解碼器通過圖樣和標(biāo)簽特征的組合來創(chuàng)建下一個標(biāo)簽特征,而這個特征則會通過全連接神經(jīng)網(wǎng)絡(luò)來預(yù)測下一個標(biāo)簽。

 

 

 圖樣的特征

 

 

因?yàn)槲覀冃枰獮槊恳粋€單詞插入一個截圖,這就成了我們訓(xùn)練網(wǎng)絡(luò)時的一個瓶頸(例子)。因此,我們沒有直接使用圖片,而是將生成標(biāo)簽所需要的信息提取出來。

之后,我們用一個預(yù)先在 ImageNet 上預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò),將這些提取出來的信息編碼到圖片特征中。

在最終分類之前,我們將特征從層中提取出來。

最終,我們得到了 1536 張 8×8 像素的圖像作為特征圖。盡管這些特征很難被人理解,但是神經(jīng)網(wǎng)絡(luò)可以從這些特征中抽取出對象和元素的位置。

 

 

 標(biāo)簽特征

 

在 Hello World 的版本中,我們使用了獨(dú)熱編碼來代表標(biāo)簽。而在這個版本中,我們將在輸入中使用詞向量(word embedding),并繼續(xù)使用獨(dú)熱編碼表示輸出。

在保持每個句子的構(gòu)造方式不變的情況下,改變映射記號的方法。獨(dú)熱編碼將每個單詞視為一個獨(dú)立的單元。但在這里,我們將輸入數(shù)據(jù)中的每個單詞轉(zhuǎn)換為數(shù)值列表。這些數(shù)值代表了不同標(biāo)簽之間的關(guān)系。

 

詞向量的維度是 8,但受詞匯量大小的影響,維度經(jīng)常會在 50 到 500 之間變化。

每個單詞的 8 個數(shù)字類似于一般神經(jīng)網(wǎng)絡(luò)中的權(quán)重,用于映射不同單詞之間的關(guān)系。

神經(jīng)網(wǎng)絡(luò)可以用這些特征來連接輸入數(shù)據(jù)與輸出數(shù)據(jù)。現(xiàn)在,先不要關(guān)心它們是什么,我們將在下一節(jié)深入探討這個問題。

 

 

編碼器

 

我們把詞向量送到 LSTM 中運(yùn)行,之后會返回一系列的標(biāo)簽特征。這些標(biāo)簽特征然后會被送到 TimeDistributed 密集層運(yùn)行。

在處理詞向量的同時,還會進(jìn)行另一個處理。圖像特征首先會被扁平化,所有的數(shù)值會被轉(zhuǎn)換成一個數(shù)字列表。然后我們在這個層上應(yīng)用一個密集層來抽取高級特征,隨后這些圖像特征會被連接到標(biāo)簽特征。

這可能有點(diǎn)難以理解,所以讓我們把處理的過程拆開來看。

 

 

 

 標(biāo)簽特征

 

 

我們先將詞向量送到 LSTM 層中運(yùn)行。如下圖所示,所有的句子都會被填充到三個記號的最大長度。

 

為了混合信號并找到更高級別的模式,我們會用 TimeDistributed 密集層應(yīng)用在標(biāo)簽特征上。TimeDistributed 密集層與一般的密集層相同,只不過具有多個輸入和輸出。

 

 

 圖像特征

 

與此同時,我們會準(zhǔn)備圖像。我們整理了所有迷你圖像特征,然后將它們轉(zhuǎn)換成一組列表。其中的信息沒有變,只是組織方式變了。

 

跟之前提過的一樣,為了混合信號和提取更高級的概念,我們應(yīng)用了一個密集層。 而且由于我們只需要處理一個輸入值,所以我們可以用一個常規(guī)密集層。其后,為了將圖像特征連接到標(biāo)簽特征,我們復(fù)制了圖像特征。

在這種情況下,我們就有三個標(biāo)簽特征。因此,我們得到了相同數(shù)量的圖像特征和標(biāo)簽特征。

 

 

 

 連接圖像特征和標(biāo)簽特征

 

所有的句子都經(jīng)過填充,以便創(chuàng)建三個標(biāo)簽特征。由于我們已經(jīng)預(yù)處理過了圖像特征,現(xiàn)在我們可以為每個標(biāo)簽特征添加一個圖像特征。

 

在將每個圖像特征添加到對應(yīng)的標(biāo)簽特征之后,我們最終得到了三組圖像標(biāo)簽特征組合。之后,我們將它們作為解碼器的輸入。

 

 

解碼器

 

 

這里,我們使用圖像標(biāo)簽特征組合來預(yù)測下一個標(biāo)簽。

 

在下面的例子中,我們使用三個圖像標(biāo)簽特征組合來輸出下一個標(biāo)簽特征。

請注意,這里 LSTM 層的 sequence 被設(shè)置為 false。由此,LSTM 層返回的是一個預(yù)測的特征,而不是輸入序列的長度。在我們的例子中,這將是下一個標(biāo)簽的特征,包含了最終預(yù)測所需的信息。

 

最終的預(yù)測

密集層像傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)那樣,將下一個標(biāo)簽特征中的 512 個值與 4 個最終預(yù)測連接起來。假設(shè)我們的詞匯表中有四個詞:start、hello、world 和 end。

詞匯預(yù)測可以是 [0.1,0.1,0.1,0.7]。密集層中的 softmax 激活函數(shù)分布概率是 0 到 1,所有預(yù)測的總和等于 1。在這種情況下,它預(yù)測第 4 個單詞會是下一個標(biāo)簽。 然后,將獨(dú)熱編碼 [0,0,0,1] 轉(zhuǎn)換為映射值,比如“end”。

 

 

 

 

 

 輸出 

 

這里有原始網(wǎng)站供參考。

 

 

 

 我掉過的坑:

 

對我來說,LSTM 比 CNN 更難理解。當(dāng)我展開所有的 LSTM 后,它們變得更容易理解。Fast.ai 在 RNN 上的視頻非常有用。另外,在嘗試了解特征的原理之前,請先關(guān)注輸入特征和輸出特征本身。從頭開始構(gòu)建詞匯表比縮減巨大的詞匯表要容易的多。包括字體、div 標(biāo)簽大小、hex 顏色值、變量名稱和普通的單詞。大多數(shù)庫被創(chuàng)建來解析文本文件而不是代碼。在文檔中,所有內(nèi)容都由空格分隔,但在代碼中,則需要使用自定義的解析方式。可以使用在 ImageNet 上訓(xùn)練的模型來提取特征。這可能看起來違反直覺,因?yàn)?ImageNet 幾乎沒有 Web 圖像。然而,與從頭開始訓(xùn)練的 pix2code 模型相比,這樣做的損失要高出 30%。當(dāng)然,我也對使用基于網(wǎng)頁截圖的預(yù)訓(xùn)練的 inception-resnet 類型的模型很感興趣。

 

 

 

Bootstrap 版本

 

 

在我們的最終版本中,我們將使用 pix2code 論文中生成的 Bootstrap 網(wǎng)站的一個數(shù)據(jù)集。通過使用 Twitter 的 Bootstrap,我們可以將 HTML 和 CSS 相結(jié)合,并且縮減詞匯表的大小。

我們將確保它能夠?yàn)橹皼]有看過的截圖生成標(biāo)簽,還將深入研究它是如何建立對屏幕截圖和標(biāo)簽的認(rèn)知的。

我們將使用 17 個簡化過的記號,然后將這些記號轉(zhuǎn)成 HTML 和 CSS,而不是在 Bootstrap 標(biāo)簽上進(jìn)行訓(xùn)練。這個數(shù)據(jù)集包括 1500 個測試截圖和 250 幅驗(yàn)證圖像。每個截圖平均有 65 個記號,總共將生成 96925 個訓(xùn)練樣本。

通過對 pix2code 論文中的模型做了一些調(diào)整,該模型可以以 97%的準(zhǔn)確度預(yù)測網(wǎng)頁組件(BLEU 4-ngram 貪心搜索,稍后會介紹更多)。

 

一種端到端的方法

在 Image Caption 模型中,從預(yù)訓(xùn)練好的模型中提取特征的效果很好。但經(jīng)過幾次實(shí)驗(yàn)后,我發(fā)現(xiàn) pix2code 的端到端方法的效果更好。預(yù)訓(xùn)練的模型尚未用網(wǎng)頁數(shù)據(jù)訓(xùn)練過,只是用在分類上。

在這個模型中,我們用輕量級的卷積神經(jīng)網(wǎng)絡(luò)替換了預(yù)訓(xùn)練好的圖像特征。但是我們沒有使用 max-pooling 來增加信息密度,而是增加了步幅,用以維護(hù)元素的位置和顏色。

 

這里可以使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)這兩種核心模型。最常見的 RNN 是長短期記憶(LSTM)網(wǎng)絡(luò),也是我將要講的。

我在之前的文章中已經(jīng)介紹過很多很棒的 CNN 教程了,所以這里我就只重點(diǎn)介紹下 LSTM。

 

 

 

 理解 LSTM 中的時間步

 

LSTM 的難點(diǎn)之一是時間步的概念。原始神經(jīng)網(wǎng)絡(luò)可以被認(rèn)為有兩個時間步。如果你給它“hello”,它會預(yù)測到“world”。但是,想要預(yù)測更多的時間步是很困難的。在下面的例子中,輸入四個時間步,每個單詞對應(yīng)一個。

LSTM 適用于含有時間步的輸入,是一個適合有序信息的神經(jīng)網(wǎng)絡(luò)。如果你展開我們的模型,就會看到像下圖所示的那樣。對于每個向下遞推的步驟,你需要保持同樣的權(quán)重。對于舊的輸出和新的輸出,你可以分別設(shè)置一套權(quán)重。

將加權(quán)后的輸入和輸出用激活函數(shù)連接在一起,它就是對應(yīng)時間步的輸出。由于我們重復(fù)使用這些權(quán)重,它們將從一些輸入中提取信息,并建立起有關(guān)序列的知識。

以下是 LSTM 中每個時間步的簡化版本。

 

為了理解這個邏輯,我建議你參考 Andrew Trask 的精彩教程,自己從頭開始構(gòu)建一個 RNN。

 

 

 理解 LSTM 層中的不同單元

 

每個 LSTM 層的單元(unit)數(shù)量決定了它的記憶能力,以及每個輸出特征的大小。需要再次指出的是,一個特征是用于在層與層之間傳輸信息的一長串?dāng)?shù)字。

LSTM 層中的每個單元會學(xué)習(xí)跟蹤語法的不同方面。下面是對一個單位跟蹤原始 div 信息的可視化結(jié)果,是我們用來訓(xùn)練 Bootstrap 模型的簡化標(biāo)簽。

 

每個 LSTM 單元會維護(hù)一個細(xì)胞狀態(tài)(cell state)。把細(xì)胞狀態(tài)想象成記憶,而權(quán)重和激活函數(shù)用來以不同的方式修改狀態(tài)。這使得 LSTM 層能夠微調(diào)每個輸入要保留和丟棄哪些信息。

除了每個輸入傳遞輸出特征之外,LSTM 層還會傳遞細(xì)胞狀態(tài),其中每個單元都分別對應(yīng)一個值。為了理解 LSTM 中的組件是如何相互作用的,我推薦 Colah 的教程、Jayasiri 的 Numpy 實(shí)現(xiàn)以及 Karphay 的講座和文章。

   

 

 

 

 測試準(zhǔn)確性 

 

找到一個公平的方法來衡量準(zhǔn)確性非常困難。假設(shè)你選擇逐字比較,那么如果你的預(yù)測中有一個字不同步,那么你的準(zhǔn)確性就可能會是零。如果你刪掉一個符合預(yù)測的單詞,最后的準(zhǔn)確性也可能是 99%。

我用的是 BLEU 測評法,這是一種用于機(jī)器翻譯和圖像字幕模型的最佳實(shí)踐。它按照 1 到 4 個單詞序列把句子分成四個 gram。在下面的預(yù)測中的“cat”應(yīng)該是“code”。

 

為了拿到最終的分?jǐn)?shù),你需要將得到的數(shù)字都乘以 25%,(4/5)*0.25 + (2/4)*0.25 + (1/3)*0.25 + (0/2)*0.25 = 0.2 + 0.125 + 0.083 + 0 = 0.408。求和的結(jié)果再乘以句子長度的處罰值。因?yàn)槲覀兝又械木渥娱L度是正確的,所以求和的結(jié)果直接就是最終的結(jié)果。

你可以通過增加 gram 的數(shù)量讓它變得更難。四個 gram 的模型是最符合人類翻譯的模型。我建議使用下面的代碼運(yùn)行幾個例子并閱讀 Wiki 頁,來加深對這方面的了解。

 

  

 

 

 

 輸出  

 

一些輸出樣本的鏈接:

  • 生成網(wǎng)站 1——original 1

https://emilwallner.github.io/bootstrap/pred_1/

  • 生成網(wǎng)站 2——original 2

https://emilwallner.github.io/bootstrap/real_2/

  • 生成網(wǎng)站 3——original 3

https://emilwallner.github.io/bootstrap/pred_3/

  • 生成網(wǎng)站 4——original 4

https://emilwallner.github.io/bootstrap/pred_4/

  • 生成網(wǎng)站 5——original 5

https://emilwallner.github.io/bootstrap/pred_5/ 

 

 

 我掉過的坑:

 

 

 

 

  • 理解不同模型的弱點(diǎn),而不是測試隨機(jī)模型。開始的時候,我使用了類似批次標(biāo)準(zhǔn)化和雙向網(wǎng)絡(luò)這類隨機(jī)模型,并嘗試實(shí)現(xiàn)注意力機(jī)制。然后看了測試數(shù)據(jù),才發(fā)現(xiàn)這樣無法準(zhǔn)確預(yù)測顏色和位置,我意識到 CNN 有一個弱點(diǎn)。這就導(dǎo)致我采用更大的步幅來取代 maxpooling。之后驗(yàn)證損失就從 0.12 變?yōu)?0.02,而 BLEU 得分從 85%提高到了 97%。
  • 如果它們相關(guān)的話,只使用預(yù)先訓(xùn)練好的模型。鑒于給定的數(shù)據(jù)集很小,我認(rèn)為經(jīng)過預(yù)訓(xùn)練的圖像模型會提高性能。從我的實(shí)驗(yàn)來看,端到端的模型訓(xùn)練起來比較慢,需要更多的內(nèi)存,但是精度要高出 30%。
  • 在遠(yuǎn)程服務(wù)器上運(yùn)行模型時,你的計(jì)劃需要有所調(diào)整。在我的 Mac 上,它會按字母順序來讀取文件。但是在遠(yuǎn)程服務(wù)器上,它是隨機(jī)定位的。這就造成了截圖和代碼之間的不匹配。雖然它仍然收斂,但驗(yàn)證數(shù)據(jù)比我修正之后的要差 50%。
  • 確保你理解庫函數(shù)。包括詞匯表中空記號的填充空格。當(dāng)我沒有添加填充空格時,預(yù)測中沒有包括任何一個空記號。這也是我看了好幾遍輸出結(jié)果之后才注意到的,而且模型從來沒有預(yù)測到一個單記號。經(jīng)過快速的檢查,我發(fā)現(xiàn)到這甚至不在詞匯表中。另外,詞匯表要以相同的順序進(jìn)行訓(xùn)練和測試。
  • 試驗(yàn)時使用更輕量級的模型。使用 GRU 而不是 LSTM 會將每個 epoch 周期減少 30%,并且對性能沒有太大的影響。 

 

 

 

下一步 

 

 

 

 

 

前端開發(fā)是應(yīng)用深度學(xué)習(xí)的理想領(lǐng)域。因?yàn)樯蓴?shù)據(jù)很容易,并且目前的深度學(xué)習(xí)算法可以映射絕大部分的邏輯。

其中最令人興奮的領(lǐng)域之一是注意力機(jī)制在 LSTM 上的應(yīng)用。這不僅會提高準(zhǔn)確性,而且還能使我們能夠直觀地看到 CNN 在產(chǎn)生標(biāo)簽時將焦點(diǎn)放在了哪里。

注意力機(jī)制也是標(biāo)簽、樣式表、腳本和后端之間溝通的關(guān)鍵。注意力層可以跟蹤變量,確保神經(jīng)網(wǎng)絡(luò)能夠在編程語言之間進(jìn)行通信。

但在不久的將來,最大的問題在于如何找到一種可伸縮的方式來生成數(shù)據(jù),這樣就可以逐步加入字體、顏色、文字和動畫。

到目前為止,大部分的進(jìn)步都是發(fā)生在將草圖轉(zhuǎn)化為模板應(yīng)用程序的過程中。在不到兩年的時間里,我們將可以在紙上畫一個應(yīng)用程序,并在不到一秒的時間內(nèi)就可以獲得相應(yīng)的前端代碼。Airbnb 的設(shè)計(jì)團(tuán)隊(duì)和 Uizard 已經(jīng)構(gòu)建了兩個可用的原型。 

 

 

 

一些實(shí)驗(yàn)
開始 

 

 

  • 運(yùn)行所有的模型
  • 嘗試不同的超參數(shù)
  • 測試一個不同的 CNN 構(gòu)架
  • 添加雙向 LSTM 模型
  • 用不同的數(shù)據(jù)集來實(shí)現(xiàn)模型 

 

 

 

進(jìn)一步的試驗(yàn) 

 

  • 使用相應(yīng)的語法創(chuàng)建一個可靠的隨機(jī)應(yīng)用程序或網(wǎng)頁生成器。
  • 從草圖到應(yīng)用模型的數(shù)據(jù)。將應(yīng)用程序或網(wǎng)頁截圖自動轉(zhuǎn)換為草圖,并使用 GAN 創(chuàng)建不同類型的草圖。
  • 應(yīng)用一個注意力層,可視化每個預(yù)測在圖像上的焦點(diǎn),類似于這個模型。
  • 為模塊化方法創(chuàng)建一個框架。比如,有字體的多個編碼器模型,其中一個用于顏色,另一個用于排版,之后將這些編碼器整合到一個解碼器中。獲得穩(wěn)定的固體圖像特征是一個好兆頭。
  • 為神經(jīng)網(wǎng)絡(luò)提供簡單的 HTML 組件,并且教它使用 CSS 生成動畫。

原文鏈接:https://blog.floydhub.com/turning-design-mockups-into-code-with-deep-learning/ 

 

責(zé)任編輯:龐桂玉 來源: AI前線
相關(guān)推薦

2024-05-30 08:40:41

大型語言模型LLM人工智能

2018-03-20 15:33:05

深度學(xué)習(xí)加密貨幣

2017-06-09 14:45:14

前端深度學(xué)習(xí)

2021-09-04 17:26:31

SpringBoot轉(zhuǎn)換器參數(shù)

2024-09-13 15:24:20

深度學(xué)習(xí)自動微分

2023-08-26 16:06:10

COBOLJava數(shù)據(jù)

2009-07-15 16:56:59

Jython類型Java類型

2014-05-04 12:51:21

Javascript編譯器

2017-12-06 15:46:31

深度學(xué)習(xí)結(jié)構(gòu)化數(shù)據(jù)NLP

2024-02-19 15:38:08

JsonPython字符串

2017-05-25 15:14:36

2020-12-17 08:08:15

CentOS

2021-10-29 15:13:21

LinuxPDF文件

2022-10-12 08:00:00

語音識別Node.js音頻質(zhì)量

2021-06-30 14:29:56

GitHub 編程工具AI

2021-05-12 08:00:00

深度學(xué)習(xí)人工智能設(shè)備

2021-05-05 10:06:09

React應(yīng)用程序微前端

2023-05-05 00:19:22

2023-08-25 14:47:56

TransFLACFLAC

2018-01-03 10:00:39

深度學(xué)習(xí)摳圖消除背景
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产精品久久久久影院| 禁果av一区二区三区| 一区二区三区在线免费视频| 成人av男人的天堂| 在线观看中文字幕视频| 欧美综合在线视频观看| 欧美一级片在线看| 成年人网站免费视频| 福利在线播放| 国产成人自拍网| 日本精品视频在线| 亚洲天堂黄色片| 群体交乱之放荡娇妻一区二区| 在线中文字幕一区二区| 亚洲乱码日产精品bd在线观看| 亚洲日本香蕉视频| 国产一区二区三区四区五区入口| 97视频在线观看成人| 一区二区三区在线播放视频| 欧美理伦片在线播放| 欧美乱妇20p| 亚洲中文字幕无码不卡电影| 国产在线观看a视频| 久久这里只有精品6| 91欧美视频网站| 无码一区二区三区| 激情欧美丁香| 久久精品中文字幕免费mv| 国产美女视频免费观看下载软件| 影音成人av| 欧美日在线观看| 性高湖久久久久久久久aaaaa| av在线1区2区| 2023国产精品视频| 91午夜在线播放| 超碰在线97免费| 91精产国品一二三| 玛雅亚洲电影| 亚洲国产成人精品视频| 免费国产成人看片在线| fc2在线中文字幕| 91麻豆免费观看| 精品国产乱码久久久久久88av| 一区二区三区黄色片| 天堂成人免费av电影一区| 久久久久这里只有精品| 国产一区二区三区在线视频观看| 日韩国产一区二区| 亚洲欧洲在线观看| 国产激情在线免费观看| 精品欧美午夜寂寞影院| 精品国产自在久精品国产| 国产又粗又长又爽又黄的视频| 成人啊v在线| 在线精品视频一区二区| 成年人视频网站免费观看| 超碰高清在线| 欧美三级欧美成人高清www| 精品无码国模私拍视频| 草草视频在线| 色综合网站在线| 熟女人妇 成熟妇女系列视频| 亚洲男人av| 日本精品一级二级| 日日碰狠狠丁香久燥| 国产精成人品2018| 在线播放国产精品二区一二区四区| 久久九九99视频| 国产精品亚洲自拍| 国产精品高潮呻吟av| 韩国成人在线视频| 99视频日韩| 午夜福利视频一区二区| 国产亚洲成年网址在线观看| 亚洲精美视频| 国产成人l区| 一区二区三区在线免费视频| 国产96在线 | 亚洲| 天堂中文在线播放| 欧美图片一区二区三区| 亚洲天堂伊人网| 成人激情自拍| 亚洲男人天堂网| 国产精品免费在线视频| 狠久久av成人天堂| 欧美做受高潮电影o| 中文字幕+乱码+中文乱码91| 国内精品在线播放| 精品国产一区二区三区四区精华| 女人偷人在线视频| 亚洲欧美成人一区二区三区| 国产高清av在线播放| 成人免费网站www网站高清| 欧美男男青年gay1069videost| 性猛交╳xxx乱大交| 老司机精品在线| 日韩在线观看视频免费| 亚洲欧美va天堂人熟伦| 牛牛国产精品| 欧美怡红院视频一区二区三区| 中文人妻av久久人妻18| 麻豆精品一区二区av白丝在线| 超碰97人人在线| 日本大片在线观看| 亚洲欧洲av在线| 欧美视频在线观看视频 | 日韩精品电影网| 天天摸日日摸狠狠添| 伊人久久亚洲热| 国产成人精品免费视频| 国产一区二区三区视频免费观看| 国产精品一区免费在线观看| 欧美极品一区二区| 成人ww免费完整版在线观看| 好吊成人免视频| 农村妇女精品一二区| 亚洲性视频在线| 亚洲图片欧美日产| 国产精品成人国产乱| 青青草国产精品亚洲专区无| 国产精品一区二区三区免费| 在线播放日本| 午夜不卡在线视频| 九色porny自拍| 人人网欧美视频| 久久精品亚洲精品| 无码人妻精品一区二| 国产成人av电影在线观看| 欧美日韩在线一二三| 在线观看h网| 色噜噜偷拍精品综合在线| 北京富婆泄欲对白| 婷婷综合伊人| 国产97在线视频| 蜜桃视频久久一区免费观看入口| 欧美国产精品一区二区三区| 国产综合中文字幕| 激情综合婷婷| 中文字幕日韩有码| 91久久国产综合久久91| 91免费视频大全| 91黄色在线看| 欧美视频二区欧美影视| 日韩一区二区av| 这里只有精品免费视频| 成人av在线一区二区| 大片在线观看网站免费收看| 国产精品久久乐| 亚洲视频精品在线| 亚洲精品午夜国产va久久成人| 国产电影精品久久禁18| 中文字幕精品一区日韩| 欧美亚洲韩国| 日韩黄色av网站| 日本五十熟hd丰满| 成人听书哪个软件好| 超碰97在线看| 国产精品视频一区二区三区| 国产亚洲欧美一区| 亚洲综合免费视频| 国产精品久久久久久久第一福利 | 91麻豆精品久久久久蜜臀| 日本污视频网站| 久久中文欧美| 欧日韩一区二区三区| www.26天天久久天堂| 国产亚洲精品久久久优势| www.日本精品| 久久综合九色综合欧美就去吻| 国产美女在线一区| 日韩精品丝袜美腿| 97视频在线播放| 成人全视频高清免费观看| 欧洲一区二区三区在线| 国产美女免费网站| 蜜乳av一区二区三区| 亚洲精品在线免费看| 欧美aaaaaa| 毛片精品免费在线观看| 99热这里只有精品在线| 一区二区三区在线看| 完美搭档在线观看| 葵司免费一区二区三区四区五区| 日本不卡免费新一二三区| 国内高清免费在线视频| 日韩电影网在线| 亚洲成熟少妇视频在线观看| 亚洲国产精品av| 五月天中文字幕在线| 韩日在线一区| 久久久久久久久久久久久久久久av | www.av精品| 岛国av在线免费| 国产中文一区| 蜜桃麻豆91| 精品福利在线| 久久影院资源网| 亚洲色图狠狠干| 宅男在线国产精品| 国产特黄大片aaaa毛片| 国产视频911| 在线观看一区二区三区视频| 久久aⅴ乱码一区二区三区| 亚洲欧洲久久| 日韩大胆成人| 国产主播欧美精品| 9lporm自拍视频区在线| 亚洲最新中文字幕| 性一交一乱一伧老太| 色菇凉天天综合网| 欧美视频www| 成人免费观看av| 蜜臀一区二区三区精品免费视频 | 日韩经典中文字幕| 国产美女免费视频| 日韩欧美精品中文字幕| 伊人在线视频观看| 99v久久综合狠狠综合久久| 免费成年人高清视频| 亚洲影视在线| 人人妻人人澡人人爽欧美一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲人成在线影院| 日韩wuma| 免费毛片在线不卡| 国产高清精品一区二区| 成人精品一区二区三区电影| 性欧美办公室18xxxxhd| 免费黄网在线观看| 日韩精品中文字| 日本免费网站在线观看| 欧美乱妇一区二区三区不卡视频| 日韩特级黄色片| 一区二区三区中文在线观看| 亚洲AV成人无码网站天堂久久| 99国产精品久久| 深夜视频在线观看| 国产成人精品综合在线观看 | 在线视频精品| 成人免费在线网| 欧美久久九九| 中文视频一区视频二区视频三区 | 日产中文字幕在线精品一区| 另类图片第一页| 国产欧美日本在线| 在线观看视频一区二区三区 | 中文字字幕在线中文乱码| 欧美日韩精品在线视频| 国产真实夫妇交换视频| 国产精品福利一区二区三区| 国产又粗又长免费视频| 久久婷婷久久一区二区三区| 国产女人18毛片水真多18| 国产精品一区二区不卡| 日韩欧美中文视频| 日韩成人一区二区三区在线观看| www.天天射.com| 日韩有码一区二区三区| 久久久久久久片| 日韩不卡一二三区| 天天插天天操天天射| 另类小说视频一区二区| 99re精彩视频| 精品无码三级在线观看视频| 少妇一级淫免费播放| 美女脱光内衣内裤视频久久网站 | 色大师av一区二区三区| 欧美日韩伦理| 中文字幕一区二区三区有限公司 | 99re6热只有精品免费观看| av成人午夜| 秋霞影视一区二区三区| 国产一区二区在线网站| 久久成人av| 性欧美videosex高清少妇| 日韩精品一卡| 亚洲天堂第一区| 亚洲国内欧美| 激情伊人五月天| 日本网站在线观看一区二区三区| 日韩手机在线观看视频| 麻豆国产精品一区二区三区 | 在线免费av资源| 国产精品久久久久久久久久99 | 99免费精品| 国产精品videossex国产高清 | 分分操这里只有精品| 日本成人中文字幕| 做a视频在线观看| 成人免费高清视频在线观看| 亚洲最大的黄色网| 国产亚洲一区字幕| 久久婷婷国产麻豆91| 精品久久中文字幕久久av| 欧美视频xxxx| 日韩天堂在线观看| 免费a在线观看| 最近2019年日本中文免费字幕| 免费网站在线观看人| 日本午夜精品理论片a级appf发布| 国产精品久久乐| 国产一区二区三区高清视频| 日韩情爱电影在线观看| 国模无码视频一区二区三区| 喷水一区二区三区| 无码av免费精品一区二区三区| 久久先锋资源网| 91插插插插插插| 欧美三级在线播放| 丰满人妻一区二区三区无码av| 亚洲深夜福利在线| 丝袜美女在线观看| 国产成人精品在线| 成人中文字幕视频| 亚洲精品一区二区三区蜜桃久 | 久久精品99久久香蕉国产色戒| a毛片不卡免费看片| 国产精品久久久久久久久久尿| 一区二区在线视频观看| 欧美一区二区三区四区在线观看地址| 综合一区av| 天美星空大象mv在线观看视频| 成人免费视频播放| 一级黄色片日本| 色狠狠av一区二区三区| 四虎免费在线观看| 久久夜色撩人精品| 国产精品videossex撒尿| 含羞草久久爱69一区| 久久精品一区二区不卡| 91制片厂毛片| 久久久久国产精品人| 久久精品视频8| 日韩精品一区二| 欧美18一19xxx性| 国产日韩欧美黄色| 少妇精品久久久| 青青青免费在线| 粉嫩欧美一区二区三区高清影视| 亚洲一二三精品| 欧美手机在线视频| 国产在线一二| 日韩av免费看网站| 日韩av中文字幕一区| 午夜免费福利小电影| 国产v日产∨综合v精品视频| 中文字幕资源站| 欧美日韩精品欧美日韩精品一| 免费国产在线视频| 国产精品老牛影院在线观看| 亚洲另类av| 成年人黄色片视频| 久久久久99精品国产片| 精品在线视频观看| 亚洲第一区第二区| 国产第一页在线视频| 懂色av一区二区三区在线播放| 欧美精选在线| 欧美激情国内自拍| 一区二区三区视频在线观看| xxxwww在线观看| 久久久久久久久久久网站| 999久久精品| 99爱视频在线| 久久久久久久久99精品| 免费在线不卡av| 国产一区二区三区欧美| 久久婷婷五月综合色丁香| 亚洲欧洲国产日韩精品| 国产在线观看一区二区| 青青草原在线免费观看| 日韩成人在线视频| 欧美片第一页| 欧美美乳视频网站在线观看| 性欧美videos另类喷潮| theav精尽人亡av| 欧美亚洲高清一区二区三区不卡| 91在线直播| 亚洲一区美女视频在线观看免费| 色综合五月天| 久久精品一卡二卡| 亚洲一区二区三区美女| 日韩一二三四| 国产精品视频26uuu| 天天影视欧美综合在线观看| 97超碰人人看| 欧美小视频在线| 69av亚洲| 精品网站在线看| 日本在线不卡一区| 天海翼在线视频| 亚洲高清久久网| 爱情电影社保片一区| 亚洲女人毛片| av在线这里只有精品| 天堂网视频在线| 久久精品久久久久电影| 国产精品巨作av| 牛夜精品久久久久久久| 亚洲无人区一区|