Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 Tensorflow.js批量加载和调整图像大小_Javascript_Node.js_Classification_Tensorflow.js - Fatal编程技术网

Javascript Tensorflow.js批量加载和调整图像大小

Javascript Tensorflow.js批量加载和调整图像大小,javascript,node.js,classification,tensorflow.js,Javascript,Node.js,Classification,Tensorflow.js,你知道如何达到与之相同的效果吗 在node.js下的tensorflow.js中?我看不出如何加载子文件夹中的图像,调整它们的大小,并将它们转换为张量 本教程是关于图像分类的,我们有两个文件夹/标签:猫和狗,在两个子文件夹“training”和“validation”中 如有任何帮助,将不胜感激。文件夹结构: 资料 训练 猫 狗 验证 猫 狗 脚本成功地扫描了“数据”目录及其子文件夹,调整了图像大小,将它们保存在“已调整大小”目录的相应文件夹中,并返回带有“标签”和“路径”

你知道如何达到与之相同的效果吗

在node.js下的tensorflow.js中?我看不出如何加载子文件夹中的图像,调整它们的大小,并将它们转换为张量

本教程是关于图像分类的,我们有两个文件夹/标签:猫和狗,在两个子文件夹“training”和“validation”中

如有任何帮助,将不胜感激。

文件夹结构:

  • 资料
    • 训练
    • 验证

  • 脚本成功地扫描了“数据”目录及其子文件夹,调整了图像大小,将它们保存在“已调整大小”目录的相应文件夹中,并返回带有“标签”和“路径”的“图像”数组


    如何将此数据加载并传递到tensorflow.js?

    文件夹结构:

  • 资料
    • 训练
    • 验证

  • 脚本成功地扫描了“数据”目录及其子文件夹,调整了图像大小,将它们保存在“已调整大小”目录的相应文件夹中,并返回带有“标签”和“路径”的“图像”数组



    如何将这些数据加载并传递到tensorflow.js?

    目前还没有像python中那样在nodejs中创建数据管道的包。你可以自己写,这里有一些包@edkeveked-比如我自己的
    超音速燃烧冲压发动机
    。然后必须将数据加载到tensorflow.js。我可以帮上忙,但我们需要从一些可测试的例子开始——如果你给我指一个回购协议——我很乐意去看看。@Edkevek Yep,我可以看到,如果我们能为node.js开发人员实现类似的数据管道,那就太好了。@MichałKapracki这是一个git,我修改了脚本以存储带有标签和目录的图像。@HamzSider我将在周末对此进行研究。:)目前还没有像python中那样在nodejs中创建数据管道的包。你可以自己写,这里有一些包@edkeveked-比如我自己的
    超音速燃烧冲压发动机
    。然后必须将数据加载到tensorflow.js。我可以帮上忙,但我们需要从一些可测试的例子开始——如果你给我指一个回购协议——我很乐意去看看。@Edkevek Yep,我可以看到,如果我们能为node.js开发人员实现类似的数据管道,那就太好了。@MichałKapracki这是一个git,我修改了脚本以存储带有标签和目录的图像。@HamzSider我将在周末对此进行研究。:)请参阅本文暂停将图像数据集加载到tensorflow.js中–请参阅本文暂停将图像数据集加载到tensorflow.js中–
    
    let path = require('path');
    let fs = require('fs');
    let sd = require('scandirectory');
    let sharp = require('sharp');
    // params
    const IMG_HEIGHT = 150
    const IMG_WIDTH = 150
    const options = {}
    let uniq_labels = []
    let images = []
    // let images_tensor = {}
    const data_path = path.join(__dirname, '../data/');
    const resized_path = path.join(__dirname, '../resized/');
    
    // resize images
    sd(data_path, options, scanDirCb);
    
    function scanDirCb(err, list, tree) {
        let labels = []
        if (err) {
            console.log('Unable to scan directory: ' + err);
            return
        } else {
            // loop
            Object.entries(tree).forEach(([folder, label]) => {
                // create sub folder
                if (!fs.existsSync(resized_path + folder)) {
                    fs.mkdirSync(resized_path + folder);
                }
                Object.entries(label).forEach(([label_name, content]) => {
                    // new image
                    let new_image = {
                        "label": label_name
                    };
                    // save labels
                    labels.push(label_name);
    
                    if (!fs.existsSync(resized_path + folder + '/' + label_name)) {
                        fs.mkdirSync(resized_path + folder + '/' + label_name);
                    }
                    // saving images
                    for (let image in content) {
                        if (content.hasOwnProperty(image)) {
                            // console.log(`Resizing image: ${image}`)
                            // save image path
                            new_image.path = resized_path + folder + '/' + label_name + '/' + image;
    
                            sharp(path.join(data_path + folder + '/' + label_name, '/' + image))
                                .resize(IMG_HEIGHT, IMG_WIDTH)
                                .jpeg({
                                    quality: 90
                                }).toFile(path.join(resized_path + folder + '/' + label_name, '/' + image));
    
                            images.push(new_image)
                        }
                    }
                });
            });
        };
        // remove dublicate labels
        uniq_labels = [...new Set(labels)];
        // console.log(images)
        // results: 
        // { label: 'cats',
        //     path: '/Users/mac/MachineLearning/cats-dogs/resized/train/cats/cat.999.jpg'
        // }, {
        //     label: 'cats',
        //     path: '/Users/mac/MachineLearning/cats-dogs/resized/train/cats/cat.999.jpg'
        // } ...more lines
    }