资讯专栏INFORMATION COLUMN

ConvNetJS

yanwei / 2392人阅读

/*
    http://cs.stanford.edu/people/karpathy/convnetjs/docs.html
*/
"use strict";

const convnetjs = require("convnetjs");

class DomainNetJS {
    constructor() {
        this.net = new convnetjs.Net();
        this.net.makeLayers([
            {type:"input", out_sx:1, out_sy:1, out_depth:6},
            {type:"fc", num_neurons:32, activation:"relu"},
            {type:"fc", num_neurons:32, activation:"relu"},
            {type:"fc", num_neurons:32, activation:"relu"},
            {type:"regression", num_neurons:1}
        ]);
        this.trainer = new convnetjs.Trainer(this.net, {
            method:"adadelta",
            l2_decay:0.05
        });
    }
    code(c) {
        let d = 0;
        if(0x2D<=c && c<=0x39) d = (c-0x2D)+1;   // "-" ~ "9"
        if(0x41<=c && c<=0x5A) d = (c-0x41)+14;  // "A" ~ "Z"
        if(0x61<=c && c<=0x7A) d = (c-0x61)+14;  // "a" ~ "Z"
        return d;
    }
    domain(name) {
        let label = name.split(".");
        let v = [label[0].length, 3, 1, 0, 0, 0];
        for(let j=0; j=3 && d===4) v[1] = 2;
                        if(v[1]>=2 && d===8) v[1] = 1;
                        v[2] = 0;
                    }
                    else v[1] = v[2] = 0, v[3] = 1;
                    v[5] *= 40, v[5] += d;
                }
                else {
                    v[4] *= 40, v[4] += d;
                }
            }
        return new convnetjs.Vol(v);
    }
    train(name, price) {
        return this.trainer.train(this.domain(name), [price]);
    }
    evaluate(name) {
        return this.net.forward(this.domain(name)).w[0];
    }
    toJSON() {
        return this.net.toJSON();
    }
    fromJSON(json) {
        this.net.fromJSON(json);
    }
}

let dn = new DomainNetJS();
let sample = [
    {name: "nicb.wang",  price: 10},
    {name: "NIC.WANG",  price: 130},
    {name: "NIcD.WANG",  price: 1},
    {name: "nice.wang",  price: 5},
    {name: "nicf.wang",  price: 4},
    {name: "nicg.wang",  price: 6},
    {name: "nich.wang",  price: 6},
    {name: "nicb.com",   price: 80},
    {name: "NIC.COM",   price: 1000},
    {name: "NIcD.COM",   price: 20},
    {name: "nice.com",   price: 100},
    {name: "nicf.com",   price: 80},
    {name: "nicg.com",   price: 90},
    {name: "nich.com",   price: 90},
    {name: "1201.WANG", price: 600},
    {name: "1201.COM",  price: 4000}
];
for(let i=0; i<50000; i++) {
    let stats = dn.train(sample[i%sample.length].name,
                         sample[i%sample.length].price);
    if(i%1000===0) console.log(stats);
}
for(let i=0; i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80829.html

相关文章

  • 十个值得一试的开源深度学习框架

    摘要:诞生已经有十年之久,但是真正起势得益于去年开源了大量的深度学习模块和扩展。来自一个日本的深度学习创业公司,今年月发布的一个框架。顾名思义,是的深度学习框架,也是较早的商用级别的深度学习开源库。 本周早些时候Google开源了TensorFlow(GitHub),此举在深度学习领域影响巨大,因为Google在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且Google自己的Gmail和搜索...

    jokester 评论0 收藏0
  • 深度学习调参入门,有哪些技巧?

    摘要:本文将分享一些自己关于深度学习模型调试技巧的总结思考以为主。不过以卷积神经网络为代表的深层神经网络一直被诟病,这对于模型在工业界的应用推广还是带来了一定的阻碍。 作者杨军,从事大规模机器学习系统研发及应用相关工作。本文将分享一些自己关于深度学习模型调试技巧的总结思考(以CNN为主)。最近因为一些需要,参与了一些CNN建模调参的工作,出于个人习性,我并不习惯于通过单纯的trial-and-er...

    Developer 评论0 收藏0
  • GitHub十大深度学习项目

    摘要:在上排名前位的机器学习项目包括许多库,框架和教育资源。涵盖主题包括大数据,,和等等涉及深度学习和框架,如,,和都包含在一起,连同架构和概念。是一个库,使得写深度学习模型很容易,并给出了在上训练的选项。 在Github上排名前10位的机器学习项目包括许多库,框架和教育资源。看看别人都在用的工具,和学习的资源。作者Matthew Mayo, KDnuggets.开源工具在数据科学工作流程中越来越...

    galaxy_robot 评论0 收藏0
  • Web 前端中的增强现实(AR)开发技术

    摘要:增强现实以下简称浪潮正滚滚而来,浏览器作为人们最唾手可得的人机交互终端,正在大力发展技术。目前年底前端要想实现,都是靠的视频透视式技术。但这两个都是移动的,于是谷歌的团队提供了和两个库,以便开发者能用技术来基于和开发,从而实现。 本文作者 GeekPlux,博客地址:http://geekplux.com/2018/01/18/augmented-reality-development...

    Jochen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<