{"id":8213,"date":"2024-08-13T16:19:53","date_gmt":"2024-08-13T14:19:53","guid":{"rendered":"https:\/\/www.newstechnology.eu\/it\/?p=8213"},"modified":"2024-08-13T16:19:55","modified_gmt":"2024-08-13T14:19:55","slug":"intelligenza-artificiale-con-brain-js","status":"publish","type":"post","link":"https:\/\/www.newstechnology.eu\/it\/intelligenza-artificiale\/intelligenza-artificiale-con-brain-js.html","title":{"rendered":"Intelligenza Artificiale con Brain.js"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Non si fa che parlare di <strong>intelligenza artificiale<\/strong> e solo pochi riescono a comprendere esattamente cosa sia. Sta di fatto che la stiamo usando tutti i giorni!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tra i tanti progetti che esistono, mi sono soffermato su Brain.js. <\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2024\/08\/brain.js-rete-neurale.jpeg\" alt=\"\" class=\"wp-image-8218\" srcset=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2024\/08\/brain.js-rete-neurale.jpeg 1024w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2024\/08\/brain.js-rete-neurale-300x300.jpeg 300w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2024\/08\/brain.js-rete-neurale-150x150.jpeg 150w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2024\/08\/brain.js-rete-neurale-768x768.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/brain.js.org\/#\/\">Brain.js<\/a> e&#8217; nato e sviluppato come <strong>progetto opensource<\/strong>, poi quasi lasciato dal suo autore. Gli sviluppatori si sono riuniti, ed hanno deciso che il progetto era valido e non si poteva abbandonare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creata una <a href=\"https:\/\/github.com\/BrainJS\/brain.js\/\">repository ad-hoc per brain.js<\/a>, hanno lasciato il nome del creatore e lo hanno cosi&#8217; dato in pasto alla comunita&#8217; opensource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Bran.js<\/strong> e&#8217; un framework per la creazione di reti neurali. Le reti neurali sono le basi per la creazione di una intelligenza artificiale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo tools, a differenza di altri, che utlizzano in prevalenza python come motore di sviluppo, e&#8217; stato implementato in javascript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idea fantastica perche&#8217; con poche righe di codice puoi portare il tuo progetto direttamente sul client, senza necessita&#8217; di installazioni (solo browser).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"> Compilazione Brain.js con Docker<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Di questo progetto non ho trovato abbastanza notizie sulla compilazione e creazione del file brain.js da inserire nella pagina html.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vi mostro come ho compilato il progetto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Creato il file Dockerfile<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\nFROM node:16.20.2\n\nRUN apt-get update  \\\n  &amp;&amp; apt-get install -y build-essential libglew-dev libglu1-mesa-dev libxi-dev pkg-config\n\nRUN mkdir -p \/home\/node\/app\/node_modules &amp;&amp; chown -R node:node \/home\/node\/app\n\nWORKDIR \/home\/node\/app\n\nUSER node\n\nRUN npm i run-p\n\nCOPY --chown=node:node . .\n\nRUN rm package-lock.json &amp;&amp; touch .\/dist\nRUN npm i<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Container Con il Codice browser.js<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Dal file Dockerfile possiamo ora lanciare il comando per la costruzione del container:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker build -t brain .<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possiamo ora copiarci il file <strong>browser.js <\/strong>e portarlo in locale. Questo file che contiene la libreria per creare ed addestrare reti neurali:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --rm -v .:\/dist brain \/bin\/bash -c \"cp dist\/browser.js \/dist\/brain.js\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Distribuzione del File brain.js <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Non ci resta altro da fare che <strong>distribuire il nostro file in qualche CDN<\/strong> (Content Delivery Network) per poterlo utilizzare nelle nostre pagine web che diventeranno vere e proprie reti neurali.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Esempio Pagina Web con Javascript Brain.js<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Quello che segue e&#8217; un esempio di come potremmo creare la nostra rete neurale con un file html.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Possiamo chiamare il file index.html.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><code>&lt;!DOCTYPE html>\n&lt;html>\n&lt;script src=\"brain.js\">&lt;\/script>\n&lt;body>\n&lt;h1>Deep Learning with brain.js&lt;\/h1>\n&lt;div id=\"demo\">&lt;\/div>\n\n&lt;script>\n\/\/ Create a Neural Network\nconst network = new brain.NeuralNetwork();\n\n\/\/ Train the Network with 4 input objects\nnetwork.train(&#91;\n  {input:&#91;0,0], output:{zero:1}},\n  {input:&#91;0,1], output:{one:1}},\n  {input:&#91;1,0], output:{one:1}},\n  {input:&#91;1,1], output:{zero:1}},\n]);\n\n\/\/ What is the expected output of &#91;1,0]?\nlet result = network.run(&#91;1,0]);\n\nprintResult(result);\nlet result1 = network.run(&#91;1,1]);\nprintResult(result1);\n\nfunction printResult(result) {\n  \/\/ Display the probability for \"zero\" and \"one\"\n  document.getElementById(\"demo\").innerHTML =\n  \"one: \" + result&#91;\"one\"] + \"&lt;br>\" + \"zero: \" + result&#91;\"zero\"];\n}\n&lt;\/script>\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se vi \u00e8 piacuto l&#8217;articolo potete aiutarmi condividendolo nei vostri social!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grazie<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Non si fa che parlare di intelligenza artificiale e solo pochi riescono a comprendere esattamente cosa sia. Sta di fatto che la stiamo usando tutti i giorni! Tra i tanti progetti che esistono, mi sono soffermato su Brain.js.<\/p>\n","protected":false},"author":1,"featured_media":8218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpai_meta_description":"","footnotes":""},"categories":[1282],"tags":[1681,1683,253,645,928,1456],"class_list":["post-8213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intelligenza-artificiale","tag-brain-js","tag-framework","tag-intelligenza-artificiale","tag-javascript","tag-opensource","tag-reti-neurali"],"_links":{"self":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/comments?post=8213"}],"version-history":[{"count":5,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8213\/revisions"}],"predecessor-version":[{"id":8219,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8213\/revisions\/8219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media\/8218"}],"wp:attachment":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media?parent=8213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/categories?post=8213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/tags?post=8213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}