Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用tf.browser.fromPixels(图像)实现TensorFlow.js训练的基本示例的真/假输出?_Javascript_Tensorflow_Tensorflow.js - Fatal编程技术网

Javascript 如何使用tf.browser.fromPixels(图像)实现TensorFlow.js训练的基本示例的真/假输出?

Javascript 如何使用tf.browser.fromPixels(图像)实现TensorFlow.js训练的基本示例的真/假输出?,javascript,tensorflow,tensorflow.js,Javascript,Tensorflow,Tensorflow.js,我已经用谷歌搜索了我能想到的每个问题的版本,但就我的一生而言,我找不到一个tensorflow.js训练tf.browser.fromPixels(图像)的基本示例,结果是“是”或“否”。我能找到的所有示例都是从预先训练过的网络开始的 我已经建立了一个25x25像素图像的数据库,并将它们作为画布存储在一个变量中,如: let data = { t: [canvas1, canvas2, canvas3, ... canvas3000 ....], f: [canvas1, can

我已经用谷歌搜索了我能想到的每个问题的版本,但就我的一生而言,我找不到一个tensorflow.js训练tf.browser.fromPixels(图像)的基本示例,结果是“是”或“否”。我能找到的所有示例都是从预先训练过的网络开始的

我已经建立了一个25x25像素图像的数据库,并将它们作为画布存储在一个变量中,如:

let data = {
    t: [canvas1, canvas2, canvas3, ... canvas3000 ....],
    f: [canvas1, canvas2, ... and so on ...]
}
我认为这样做应该是微不足道的:

data.t.forEach(canvas => {
    const xs = tf.browser.fromPixels(canvas);
    const ys = tf.tensor([1]); // output 1, since this canvas is from the `t` (true) dataset
    model.fit(xs, ys, {
      batchSize: 1,
      epochs: 1000
    });
});

data.f.forEach(canvas => {
    const xs = tf.browser.fromPixels(canvas);
    const ys = tf.tensor([0]); // output 0, since this canvas is from the `f` (false) dataset
    model.fit(xs, ys, {
      batchSize: 1,
      epochs: 1000
    });
});

model.predict(tf.browser.fromPixels(data.t[0])).print(); // -> [1]
model.predict(tf.browser.fromPixels(data.t[1])).print(); // -> [1]
model.predict(tf.browser.fromPixels(data.t[2])).print(); // -> [1]

model.predict(tf.browser.fromPixels(data.f[0])).print(); // -> [0]
model.predict(tf.browser.fromPixels(data.f[1])).print(); // -> [0]
model.predict(tf.browser.fromPixels(data.f[2])).print(); // -> [0]
但是对于TF来说,像
inputShape
和各种小细节这样的细节是新的,这使得在无法找到基本示例的情况下尝试实现这一点非常痛苦。此培训职能的有效表示形式是什么?以下是迄今为止的代码:

//想象一下,DataSet构建了一个大型数据集,如我的
//询问并调用数据变量为的callpack函数
//它唯一的论点,充满了预先分类的图像。自从我的数据库
//很多图像是本地存储的,我不能在这里给出一个例子
//这是完全可行的,但这至少让人明白了这个想法。
新数据集(
数据=>{
const model=tf.sequential();
model.add(
//是的,我意识到我想要一个卷积层,
//一些最大池,过滤等,但我试图开始简单
致密的({
单位:[1],
inputShape:[25,25,3],
数据格式:“channelsLast”,
激活:“tanh”
})
);
compile({优化器:“sgd”,loss:“BinaryCross熵”,lr:0.1});
data.t.forEach(canvas=>{
const xs=tf.browser.fromPixels(画布);
const ys=tf.tensor([1]);//输出1,因为这个画布是
//从't'(true)数据集
模型拟合(xs,ys{
批量大小:1,
纪元:1000
});
});
data.f.forEach(画布=>{
const xs=tf.browser.fromPixels(画布);
const ys=tf.tensor([0]);//输出0,因为这个画布是
//从“f”(false)数据集
模型拟合(xs,ys{
批量大小:1,
纪元:1000
});
});
model.predict(tf.browser.fromPixels(data.t[0])).print();/->[1]
model.predict(tf.browser.fromPixels(data.t[1])).print();/->[1]
model.predict(tf.browser.fromPixels(data.t[2])).print();/->[1]
model.predict(tf.browser.fromPixels(data.f[0])).print();/->[0]
model.predict(tf.browser.fromPixels(data.f[1])).print();/->[0]
model.predict(tf.browser.fromPixels(data.f[2])).print();/->[0]
},
{canvas:true}
);

您的模型只有一个图层。你需要更多的图层。 有很多教程,你可以按照建立一个分类器来区分两个或更多类的图像。本教程使用CNN发布在tensorflow的官方网站上

此外,您可以看到如何使用完全连接的神经网络来构建分类器,尽管精度可能不如CNN模型