整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          中瑯條碼標(biāo)簽打印軟件如何批量生成個(gè)位隨機(jī)數(shù)字

          中瑯條碼標(biāo)簽打印軟件如何批量生成個(gè)位隨機(jī)數(shù)字

          中瑯條碼標(biāo)簽打印軟件中批量隨機(jī)生成個(gè)位數(shù)字的方法有2種。一種方法是直接使用數(shù)據(jù)對(duì)象類型“隨機(jī)生成”,還有一種方法是使用“腳本編程”的數(shù)據(jù)類型去批量生成。

          在開(kāi)始制作之前我們先來(lái)簡(jiǎn)單了解一下中瑯條碼標(biāo)簽打印軟件的數(shù)據(jù)對(duì)象類型都有那些?

          有手動(dòng)輸入、數(shù)據(jù)庫(kù)導(dǎo)入、隨機(jī)生成、腳本編程、序列生成、打印時(shí)輸入、數(shù)據(jù)引用、日期時(shí)間等等。在本文中就主要用到了2中數(shù)據(jù)對(duì)象類型,接下來(lái)快來(lái)看下在軟件中具體的操作步驟有那些吧。

          首先需要先在電腦上面安裝好中瑯條碼標(biāo)簽打印軟件,打開(kāi)軟件點(diǎn)擊新建,并選擇打印機(jī),設(shè)置標(biāo)簽紙張的大小,需要注意的是標(biāo)簽紙張的大小需要設(shè)置的和打印機(jī)中標(biāo)簽紙張大小保持一致。

          一、隨機(jī)生成

          1)點(diǎn)擊軟件左側(cè)工具欄中“實(shí)心A”,并在畫布合適的繪制進(jìn)行繪制普通文本,鼠標(biāo)雙擊,彈出“圖形屬性”在數(shù)據(jù)源中點(diǎn)擊修改,選數(shù)據(jù)類型類型“隨機(jī)生成”字符集合為:0123456789,生成長(zhǎng)度為:1編輯;

          2)在圖形屬性——文字中修改字體、樣式、大小、排版模式、顏色等排版參數(shù)信息,都可根據(jù)實(shí)際需求去進(jìn)行調(diào)整。設(shè)置完成點(diǎn)擊打印預(yù)覽即可查看批量生成1位隨機(jī)數(shù)字的效果。

          二、腳本編程

          同樣是點(diǎn)擊“實(shí)心A”在標(biāo)簽上繪制普通文本,不同的是在數(shù)據(jù)對(duì)象類型中使用的數(shù)據(jù)類型是“腳本編程”,所實(shí)現(xiàn)的是隨機(jī)生成1-9數(shù)字的腳本。

          /*javascript*/

          //vars:thisObj,dataObj

          var mon=["1","2","3","4","5","6","7","8","9"];

          var n=Math.floor(Math.random() * 9 + 1)-1;

          var n2=n.toFixed(0)

          strReturn=mon[n2];

          綜上所述就是在中瑯條碼標(biāo)簽打印軟件中批量生成個(gè)位隨機(jī)數(shù)字的操作方法了。有需要的小伙伴趕快按照上面的操作步驟在軟件中進(jìn)行設(shè)置吧。

          ntroduction 介紹

          人工智能和機(jī)器學(xué)習(xí)是軟件開(kāi)發(fā)的一個(gè)令人興奮的新前沿。雖然新的工具,網(wǎng)站和其他資源不斷涌現(xiàn),但其中大多數(shù)都是用Python(或者R)編寫的。如果你是一個(gè)前端開(kāi)發(fā)人員(他最喜歡的語(yǔ)言可能是JavaScript),你可能會(huì)想知道你是否有可能探索這個(gè)新世界。

          幸運(yùn)的是,這個(gè)問(wèn)題的答案是肯定的。有一些庫(kù)可以讓你在不了解Python一行的情況下練習(xí)機(jī)器學(xué)習(xí)。在本教程中,我們將探討其中之一 - 大腦.js - 并展示如何構(gòu)建,訓(xùn)練和使用只有JavaScript的深度神經(jīng)網(wǎng)絡(luò)(DNN)。

          Learning objectives 學(xué)習(xí)目標(biāo)

          我們將逐步完成一個(gè)預(yù)構(gòu)建的 DNN。我們將展示它如何從 UI 中工作,深入研究將 UI 連接到 DNN 的代碼,然后解釋實(shí)際創(chuàng)建和訓(xùn)練 DNN 的代碼。然后,我們將回過(guò)頭來(lái)解釋 DNN 是什么、它們?nèi)绾喂ぷ饕约叭藗內(nèi)绾蝿?chuàng)建和改進(jìn)它們的一些基本概念。在此過(guò)程中,我們將發(fā)現(xiàn)DNN如何使我們能夠以令人驚訝的少代碼獲得令人印象深刻的結(jié)果。

          Prerequisites 前置條件準(zhǔn)備

          本文假定您之前沒(méi)有 DNN 或機(jī)器學(xué)習(xí)方面的經(jīng)驗(yàn)

          For the tutorial, you will need:

          • Basic familiarity with JavaScript 對(duì)腳本的基本熟悉程度
          • Basic familiarity with Git and GitHub 對(duì) Git 和 GitHub 的基本熟悉程度


          步驟1. Draw and predict

          克隆存儲(chǔ)庫(kù)后,在所選瀏覽器中打開(kāi)數(shù)字計(jì)算器.html文件。加載時(shí),您應(yīng)該會(huì)看到以下內(nèi)容。


          這是數(shù)字預(yù)測(cè)應(yīng)用程序的 UI,該應(yīng)用程序使用 DNN 來(lái)猜測(cè)您在其網(wǎng)格中繪制的內(nèi)容。

          嘗試在網(wǎng)格中繪制一個(gè)數(shù)字;它可以是 0 到 9 之間的任何值(僅限一位數(shù)字)。您可以通過(guò)單擊網(wǎng)格中的正方形,按住鼠標(biāo)左鍵并拖動(dòng)它來(lái)繪制數(shù)字,完成后釋放。

          繪制完某些內(nèi)容后,單擊“獲取評(píng)估”按鈕。這樣做應(yīng)該會(huì)產(chǎn)生如圖 2 所示的反饋。

          若要進(jìn)行其他預(yù)測(cè),請(qǐng)單擊“清除輸入”按鈕并在網(wǎng)格中繪制另一個(gè)數(shù)字,然后再次單擊“獲取評(píng)估”。

          Here's what just happened 這是剛剛發(fā)生的事情

          希望到現(xiàn)在為止,您已經(jīng)對(duì)此程序的工作原理很感興趣。到目前為止,您已經(jīng)與預(yù)先訓(xùn)練的 DNN 進(jìn)行了交互。

          在非常基本的層面上,您正在創(chuàng)建輸入 - 您繪制的數(shù)字 - 并將其饋送到DNN。反過(guò)來(lái),DNN正在使用它以前教授的內(nèi)容(稍后會(huì)詳細(xì)介紹)來(lái)進(jìn)行有根據(jù)的猜測(cè)或預(yù)測(cè)。代碼在 UI 中顯示此預(yù)測(cè),并添加了一些詳細(xì)信息,例如黃色突出顯示,以使網(wǎng)絡(luò)的選擇更加明顯。

          步驟2. 使用Brain.js 庫(kù)構(gòu)建DNN訓(xùn)練

          我們現(xiàn)在將演練代碼,以便您可以看到使用大腦.js庫(kù)在JavaScript中實(shí)現(xiàn)DNN是什么樣的。完成此操作后,我們將退后一步,更廣泛地討論 DNN 的工作原理,并回顧我們看到的代碼,以將其全部聯(lián)系在一起。

          當(dāng)我們單擊“獲取評(píng)估”按鈕時(shí),我們可以看到它調(diào)用了一個(gè)名為getAssessment():

          <button onclick="getAssessment()" style="width:49%;">
              Get Assessment
          </button>

          當(dāng)我們?cè)跀?shù)字計(jì)算器.html文件中向下滾動(dòng)時(shí),我們可以看到 getAssessment() 的定義:

          function getAssessment() {
              const inputArray=captureAndTransformInput()
              let ourNetwork=ourNeuralNetwork
              const result=arrayToHTML(resultToArray(ourNetwork.run(inputArray)))
          
              document.getElementById('assessment').innerHTML=result
          }

          getAssessment() 函數(shù)是我們創(chuàng)建的,因此我們的 UI 可以與大腦.js庫(kù)創(chuàng)建的 DNN 對(duì)象進(jìn)行通信(稍后會(huì)詳細(xì)介紹)。

          如果要使用 DNN,我們需要做的第一件事就是獲取有關(guān)我們?cè)谄聊簧侠L制的內(nèi)容的數(shù)據(jù)。我們需要給 DNN 一些要檢查的東西。我們使用為演示創(chuàng)建的另一個(gè)函數(shù)來(lái)執(zhí)行此操作,該函數(shù)稱為捕獲和轉(zhuǎn)換輸入()。此函數(shù)循環(huán)訪問(wèn)我們網(wǎng)頁(yè)上的網(wǎng)格,并檢查哪些框被涂成紅色,哪些框沒(méi)有。然后,它采用所有這些數(shù)組,并將整體轉(zhuǎn)換為 1 和 0 的數(shù)組,并返回結(jié)果:

          function captureAndTransformInput() {
              const boxes=Array.from(document.getElementsByClassName('cell'))
              const toOnesOrZeros=box=> box.style.backgroundColor==='red' ? 1 : 0
              return boxes.map(toOnesOrZeros)
          }

          我們需要執(zhí)行此轉(zhuǎn)換,因?yàn)?Brain.js 庫(kù)提供給我們的 DNN 將不知道如何處理原始數(shù)據(jù)(來(lái)自 HTML 頁(yè)面的顏色信息)。我們的 DNN 只知道如何處理 1 和 0 的列表。

          使用深度學(xué)習(xí)術(shù)語(yǔ),我們正在使用捕獲和轉(zhuǎn)換輸入函數(shù)為我們的 DNN 創(chuàng)建一個(gè)輸入向量。

          步驟 3. 使用DNN 來(lái)判斷準(zhǔn)確度

          所有 DNN 都需要一個(gè)輸入向量來(lái)完成其工作。即使是你可能聽(tīng)說(shuō)過(guò)的神經(jīng)網(wǎng)絡(luò)示例,例如那些處理照片以確定它們是否包含貓或狗的示例,也不能直接處理照片。

          相反,腳本(通常是Python)從照片中獲取像素信息并將其解卷成一長(zhǎng)串值,這些值通常是表示照片中每個(gè)像素的每個(gè)RGB值的不同部分的數(shù)字。結(jié)果稱為輸入向量,對(duì)于照片,它可以包含許多值。我們正在對(duì)捕獲和轉(zhuǎn)換輸入()執(zhí)行類似的操作,盡管更簡(jiǎn)單。

          現(xiàn)在我們有了輸入向量,我們可以使用 DNN 對(duì)剛剛繪制的內(nèi)容進(jìn)行分類,并確定其準(zhǔn)確性。

          使用 Brain.js庫(kù)時(shí),將創(chuàng)建一個(gè)包含有關(guān) DNN 的信息的對(duì)象。此對(duì)象的一個(gè)方面是名為 run() 的方法。這就是實(shí)際生成的預(yù)測(cè),最終在我們看到的網(wǎng)頁(yè)上結(jié)束:

          ourNeuralNetwork.run(...)

          但在我們實(shí)際使用我們的 DNN 對(duì)象之前,我們必須先訓(xùn)練它并設(shè)置一些參數(shù)。我們很快就會(huì)解釋這一點(diǎn),但現(xiàn)在我們將繼續(xù)看到網(wǎng)絡(luò)的預(yù)測(cè)如何將其返回到網(wǎng)頁(yè)。

          brain.js run() 方法將輸入向量作為參數(shù)并返回結(jié)果。此結(jié)果是一個(gè) JSON 有效負(fù)載,其中包含有關(guān) DNN 對(duì)我們繪制的數(shù)字的有根據(jù)的猜測(cè)的信息。在我們的教程中,我們將captureAndTransformInput()函數(shù)的輸出提供給run()方法:

          const inputArray=captureAndTransformInput()
          const result=arrayToHTML(resultToArray(ourNeuralNetwork.run(inputArray)))
          The output of the run() method - i.e., our network’s prediction - is then passed to another “transformer” function we have created called resultToArray():
          
          function resultToArray(resultToConvert) {
              let arrayToReturn=[]
          
              arrayToReturn.push({ label: 'Zero', likelihood: resultToConvert.Zero, topChoice: 0, ordinal: 0 })
              arrayToReturn.push({ label: 'One', likelihood: resultToConvert.One, topChoice: 0, ordinal: 1 })
              arrayToReturn.push({ label: 'Two', likelihood: resultToConvert.Two, topChoice: 0, ordinal: 2 })
              arrayToReturn.push({ label: 'Three', likelihood: resultToConvert.Three, topChoice: 0, ordinal: 3 })
              arrayToReturn.push({ label: 'Four', likelihood: resultToConvert.Four, topChoice: 0, ordinal: 4 })
              arrayToReturn.push({ label: 'Five', likelihood: resultToConvert.Five, topChoice: 0, ordinal: 5 })
              arrayToReturn.push({ label: 'Six', likelihood: resultToConvert.Six, topChoice: 0, ordinal: 6 })
              arrayToReturn.push({ label: 'Seven', likelihood: resultToConvert.Seven, topChoice: 0, ordinal: 7 })
              arrayToReturn.push({ label: 'Eight', likelihood: resultToConvert.Eight, topChoice: 0, ordinal: 8 })
              arrayToReturn.push({ label: 'Nine', likelihood: resultToConvert.Nine, topChoice: 0, ordinal: 9 })
          
              const byLikelihood=(x, y)=> x.likelihood < y.likelihood ? 1 : -1
              const byOrdinal=(x, y)=> x.ordinal < y.ordinal ? -1 : 1
          
              const topChoiceDesignation=(e, i, a)=> {
                  e.topChoice=i===0 ? 1 : 0  // mark the first entry (index 0) as the top choice - we can do this because we've already sorted them to ensure that the top choice is the first item 
                  return e
              }
          
              return arrayToReturn.sort(byLikelihood)
                  .map(topChoiceDesignation)
                  .sort(byOrdinal)
          }

          此函數(shù)接收預(yù)測(cè)數(shù)據(jù)(結(jié)果到轉(zhuǎn)換)并創(chuàng)建一個(gè)新數(shù)組(數(shù)組 ToReturn),其中包含可用于在 UI 中顯示結(jié)果的信息。我們的 DNN 返回的輸出將是一個(gè)具有 10 個(gè)屬性(零、一、二、三、四、五、六、七、八、九)的對(duì)象,每個(gè)屬性都有映射到它的概率(介于 0 和 1 之間)。

          因此,例如,來(lái)自 DNN(結(jié)果到轉(zhuǎn)換參數(shù))的預(yù)測(cè)有效負(fù)載可能如下所示(我們的 DNN 非常確信,無(wú)論它所看到的是什么,都是數(shù)字 4):

          // a possible payload for resultToConvert - this data came from the DNN
          {
              Zero: 0.1927014673128724,
              One: 1.588071696460247,
              Two: 0.09038684074766934,
              Three: 0.0014367527001013514,
              Four: 94.81642246246338,
              Five: 0.8259298279881477,
              Six: 0.10091685689985752,
              Seven: 0.46726344153285027,
              Eight: 0.30299206264317036,
              Nine: 41.01988673210144
          }

          我們使用此輸出來(lái)構(gòu)建一個(gè)新數(shù)組,其中每個(gè)項(xiàng)目都有一個(gè)標(biāo)簽屬性(我們創(chuàng)建并分配單詞值,如“Zero”,“One”等),一個(gè)可能性屬性(存儲(chǔ)從該項(xiàng)的神經(jīng)網(wǎng)絡(luò)接收的概率),一個(gè)topChoice屬性(我們計(jì)算)和一個(gè)序號(hào)屬性(我們?yōu)槠滟x值, 如 0, 1, 2-9)。

          我們按可能性對(duì)數(shù)組進(jìn)行排序,以確定 DNN 的首選,然后使用此信息用 1(真)或 0(假)標(biāo)記該項(xiàng)目的 topChoice 屬性。作為最后一步,我們采用新構(gòu)造的數(shù)組并將其饋送到最終函數(shù) - arrayToHTML() - 該函數(shù)將此信息包裝在HTML標(biāo)記中:

          function arrayToHTML(arr) {
              let htmlToReturn=''
              htmlToReturn=arr.map(x=> {
                  let styleToUse=x.topChoice===1 ? 'background-color: yellow;' : ''
                  return `<div style="${styleToUse}">${x.label} Confidence: ${x.likelihood * 100}%</div>`
              }).join('')
          
              return htmlToReturn;
          }

          除其他操作外,此函數(shù)還對(duì)它收到的每個(gè)項(xiàng)目執(zhí)行檢查,以確定其 topChoice 屬性是否為 1。如果是,則用黃色標(biāo)記包裝項(xiàng)目。這是我們?cè)诰W(wǎng)頁(yè)上看到的突出顯示。

          有了這個(gè),我們已經(jīng)看到了從UI到DNN(作為用戶輸入)和再次返回(作為中繼到UI的DNN輸出)的完整往返。

          步驟4. 建立 Brain.js 神經(jīng)網(wǎng)絡(luò)對(duì)象Set up Brain.js neural-network object

          早些時(shí)候,我們指出,Brain.js庫(kù)使我們能夠創(chuàng)建的DNN對(duì)象需要一些設(shè)置才能使用它。我們將在這里詳細(xì)討論這個(gè)問(wèn)題。

          number-evaluator.html文件中,我們創(chuàng)建了一個(gè)名為 activate() 的函數(shù)。當(dāng) HTML 文檔最初加載時(shí),這將觸發(fā),并且我們?cè)诖撕瘮?shù)中定義、創(chuàng)建和訓(xùn)練 DNN。

          我們通過(guò)調(diào)用 Brain.js庫(kù)中的 NeuralNetwork() 方法來(lái)做到這一點(diǎn),就像這樣(brain是我們從 Brain.js 庫(kù)的本地副本中可用的變量,存儲(chǔ)在本地brain.js文件中):

          // setting up a BrainJS DNN object with two specified hyper parameters
          ourNeuralNetwork=new brain.NeuralNetwork({
              activation: 'sigmoid',
              learningRate: 0.1
          })

          Hyper parameters 初始參數(shù)

          當(dāng)數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師創(chuàng)建神經(jīng)網(wǎng)絡(luò)時(shí),他們通常需要提供一組初始值,用于說(shuō)明網(wǎng)絡(luò)在訓(xùn)練時(shí)的運(yùn)行方式。這些初始值或參數(shù)稱為超參數(shù)。

          它們控制神經(jīng)網(wǎng)絡(luò)調(diào)整學(xué)習(xí)方式的速度,在其隱藏層中使用哪種操作,以及許多其他方面。在其他語(yǔ)言和設(shè)置中,我們通常需要提供許多超參數(shù)來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。然而,有了Brain.js,我們根本不需要提供任何東西。如果省略任何超參數(shù),該庫(kù)將提供默認(rèn)值。

          在上面的示例中,我們指定了兩個(gè)超參數(shù)。第一個(gè)是一個(gè)名為激活的參數(shù),我們已將其設(shè)置為 sigmoid。激活函數(shù)是神經(jīng)網(wǎng)絡(luò)在其隱藏層中執(zhí)行的東西,用于處理從一層到下一層的輸入。它們對(duì)于幫助神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)至關(guān)重要,因?yàn)樗鼈冇兄诳刂颇男┕?jié)點(diǎn)應(yīng)該繼續(xù)觸發(fā),哪些節(jié)點(diǎn)應(yīng)該在每一層中保持沉默。乙狀體是一種激活函數(shù)。我們可以使用許多品種(ReLU,譚等)。每個(gè)激活函數(shù)都有自己的優(yōu)點(diǎn)和缺點(diǎn)。使用 sigmoid 對(duì)于分類之類的事情特別有用,這是我們?cè)诒窘坛讨幸獙?shí)現(xiàn)的目標(biāo)。

          我們指定的另一個(gè)超參數(shù)是學(xué)習(xí)速率。學(xué)習(xí)速率決定了神經(jīng)網(wǎng)絡(luò)在嘗試創(chuàng)建有用的預(yù)測(cè)模型時(shí)(即,當(dāng)它試圖學(xué)習(xí)如何區(qū)分3和7時(shí))調(diào)整其值的速度(或速度)。

          指定學(xué)習(xí)速率,就像指定其他超參數(shù)一樣,既是藝術(shù),也是科學(xué):如果將速率設(shè)置得太低,您的網(wǎng)絡(luò)可能需要不可接受的時(shí)間來(lái)訓(xùn)練,例如,如果您在云服務(wù)上租用GPU,這可能會(huì)產(chǎn)生真正的財(cái)務(wù)后果;如果您將速率設(shè)置得太高,您的網(wǎng)絡(luò)可能永遠(yuǎn)不會(huì)收斂到所謂的“全局最小值”(解決方案)。

          時(shí)間和實(shí)踐將使您能夠掌握良好的初始值是什么樣子的。

          步驟5.訓(xùn)練神經(jīng)網(wǎng)絡(luò) Training our neural network

          我們一直在談?wù)撋窠?jīng)網(wǎng)絡(luò)的學(xué)習(xí)以及我們必須如何訓(xùn)練它,但這意味著什么,它看起來(lái)是什么樣子的?在我們的教程應(yīng)用程序的上下文中,培訓(xùn)如下所示:

          const ourTrainingData=getTrainingData()
          ourNeuralNetwork.train(ourTrainingData)

          訓(xùn)練是 DNN 工作原理的基礎(chǔ)。通常,它的完成方式是使用監(jiān)督學(xué)習(xí)方法:我們提供一個(gè)數(shù)據(jù)集,其中包含示例輸入和答案(或標(biāo)簽,有時(shí)也稱為真實(shí)標(biāo)簽),用于描述該數(shù)據(jù)行的正確分類。當(dāng)我們訓(xùn)練一個(gè)DNN(大腦.js允許我們從有用的命名train()方法開(kāi)始,它使用這些標(biāo)簽來(lái)幫助它學(xué)習(xí)。

          步驟 6. 準(zhǔn)備訓(xùn)練數(shù)據(jù)Train the data

          查看 getTrainingData() 函數(shù),我們可以知道DNN具體是如何工作的。

          Brain.js允許我們通過(guò)訓(xùn)練數(shù)據(jù)來(lái)指定我們的輸入數(shù)據(jù)將是什么樣子的,以及我們希望從神經(jīng)網(wǎng)絡(luò)中看到什么樣的輸出。它的主要要求是我們提供輸入和輸出屬性。有關(guān)詳細(xì)信息,請(qǐng)參閱“訓(xùn)練選項(xiàng)”下的“大腦.js GitHub 存儲(chǔ)庫(kù)”。

          下面是訓(xùn)練數(shù)據(jù)樣例

          { "input": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
              "output": { 
                  Zero: 1, 
                  One: 0, 
                  Two: 0, 
                  Three: 0, 
                  Four: 0, 
                  Five: 0, 
                  Six: 0, 
                  Seven: 0, 
                  Eight: 0, 
                  Nine: 0 
                  } 
              }

          訓(xùn)練識(shí)別概率

          {
              Zero: 0.1927014673128724,
              One: 1.588071696460247,
              Two: 0.09038684074766934,
              Three: 0.0014367527001013514,
              Four: 94.81642246246338,
              Five: 0.8259298279881477,
              Six: 0.10091685689985752,
              Seven: 0.46726344153285027,
              Eight: 0.30299206264317036,
              Nine: 41.01988673210144
          }


          自己創(chuàng)建訓(xùn)練數(shù)據(jù)

          通過(guò)手寫板準(zhǔn)備數(shù)據(jù),

          Summary 總結(jié)

          本文中,我們展示了如何使用 JavaScript 實(shí)現(xiàn)和訓(xùn)練 DNN,這要?dú)w功于brain.js庫(kù) - 通常需要 Python 和 Keras、Pytorch 或 TensorFlow 等庫(kù)的任務(wù)。

          我們證明了一個(gè)有效的數(shù)字識(shí)別器可以用令人驚訝的少代碼創(chuàng)建。我們學(xué)習(xí)了機(jī)器學(xué)習(xí)的一些基本構(gòu)建塊和實(shí)踐,例如為DNN指定學(xué)習(xí)速率和激活函數(shù)(以及其他超參數(shù))。

          希望本文已經(jīng)向您展示,在沒(méi)有經(jīng)驗(yàn)的情況下開(kāi)始使用AI和機(jī)器學(xué)習(xí)不僅是可能的,而且在像JavaScript這樣的熟悉語(yǔ)言中也是可行的。

          中瑯條碼標(biāo)簽打印軟件中批量隨機(jī)生成個(gè)位數(shù)字的方法有2種。一種方法是直接使用數(shù)據(jù)對(duì)象類型“隨機(jī)生成”,還有一種方法是使用“腳本編程”的數(shù)據(jù)類型去批量生成。

          在開(kāi)始制作之前我們先來(lái)簡(jiǎn)單了解一下中瑯條碼標(biāo)簽打印軟件的數(shù)據(jù)對(duì)象類型都有那些?

          有手動(dòng)輸入、數(shù)據(jù)庫(kù)導(dǎo)入、隨機(jī)生成、腳本編程、序列生成、打印時(shí)輸入、數(shù)據(jù)引用、日期時(shí)間等等。在本文中就主要用到了2中數(shù)據(jù)對(duì)象類型,接下來(lái)快來(lái)看下在軟件中具體的操作步驟有那些吧。

          首先需要先在電腦上面安裝好中瑯條碼標(biāo)簽打印軟件,打開(kāi)軟件點(diǎn)擊新建,并選擇打印機(jī),設(shè)置標(biāo)簽紙張的大小,需要注意的是標(biāo)簽紙張的大小需要設(shè)置的和打印機(jī)中標(biāo)簽紙張大小保持一致。

          一、隨機(jī)生成

          1)點(diǎn)擊軟件左側(cè)工具欄中“實(shí)心A”,并在畫布合適的繪制進(jìn)行繪制普通文本,鼠標(biāo)雙擊,彈出“圖形屬性”在數(shù)據(jù)源中點(diǎn)擊修改,選數(shù)據(jù)類型類型“隨機(jī)生成”字符集合為:0123456789,生成長(zhǎng)度為:1編輯;

          2)在圖形屬性——文字中修改字體、樣式、大小、排版模式、顏色等排版參數(shù)信息,都可根據(jù)實(shí)際需求去進(jìn)行調(diào)整。設(shè)置完成點(diǎn)擊打印預(yù)覽即可查看批量生成1位隨機(jī)數(shù)字的效果。

          二、腳本編程

          同樣是點(diǎn)擊“實(shí)心A”在標(biāo)簽上繪制普通文本,不同的是在數(shù)據(jù)對(duì)象類型中使用的數(shù)據(jù)類型是“腳本編程”,所實(shí)現(xiàn)的是隨機(jī)生成1-9數(shù)字的腳本。

          /*javascript*/

          //vars:thisObj,dataObj

          var mon=["1","2","3","4","5","6","7","8","9"];

          var n=Math.floor(Math.random() * 9 + 1)-1;

          var n2=n.toFixed(0)

          strReturn=mon[n2];

          綜上所述就是在中瑯條碼標(biāo)簽打印軟件中批量生成個(gè)位隨機(jī)數(shù)字的操作方法了。有需要的小伙伴趕快按照上面的操作步驟在軟件中進(jìn)行設(shè)置吧。


          主站蜘蛛池模板: 五十路熟女人妻一区二区 | 97精品一区二区视频在线观看| 亚洲一区免费视频| 国产美女一区二区三区| 夜夜爽一区二区三区精品| 精品国产一区二区三区色欲| 中文字幕一区二区人妻| 无码精品黑人一区二区三区 | 国产精品一级香蕉一区| 国产精品综合AV一区二区国产馆 | 国产日韩精品一区二区在线观看| 精品欧洲av无码一区二区| 成人精品一区二区激情| 高清一区二区在线观看| 在线观看国产一区| 国产成人精品第一区二区| 色一情一乱一伦一区二区三欧美| 无码人妻啪啪一区二区| 91一区二区三区四区五区 | 亚洲Av永久无码精品一区二区| 麻豆AV无码精品一区二区| 人妻夜夜爽天天爽一区| 亚洲美女高清一区二区三区 | 午夜福利一区二区三区在线观看| 少妇精品无码一区二区三区| AV无码精品一区二区三区| 日韩一区二区三区电影在线观看 | 日韩AV无码久久一区二区| 中文字幕av人妻少妇一区二区| 国产精品香蕉一区二区三区| 视频一区二区三区在线观看| 丰满少妇内射一区| 无码日韩精品一区二区免费| 国产亚洲一区二区三区在线观看| 日本一区频道在线视频| av无码人妻一区二区三区牛牛| 老熟妇高潮一区二区三区| 中文字幕一区在线播放| 成人一区二区三区视频在线观看| 国产午夜精品一区二区三区小说| 亚洲国产欧美国产综合一区|