📜  Tensorflow.js tf.data.csv()函数

📅  最后修改于: 2022-05-13 01:56:19.905000             🧑  作者: Mango

Tensorflow.js tf.data.csv()函数

Tensorflow.js 是谷歌开发的一个开源库,用于在浏览器或节点环境中运行机器学习模型和深度学习神经网络。

tf.data.csv()函数用于通过从提供的 URL 或本地路径读取和解码 CSV 文件来创建 CSV 数据集。

句法:

tf.data.csv(source, csvConfig);

参数:此方法接受以下两个参数。

  • source:获取 CSV 文件的 URL 或本地路径。
  • csv-Config:它是一个 CSV-Config 对象,包含从 CSV 文件读取和解码的配置,它是一个可选参数,具有以下属性。
    • hasHeader:用于指示提供的 CSV 文件的第一行是否为带有列名的标题行,不应包含在数据中。
    • columnNames:用于表示与 CSV 列名对应的字符串列表。
    • columnConfigs:一个字典,其键是列名,值是一个对象,说明是否需要此列,列的数据类型默认值,以及此列是否为标签。它有以下键:
      • required:如果设置为true,则用于使此列中的值成为必需。
      • dtype:用于表示该列的数据类型。
      • 默认值:用于表示该列的默认值。
      • IsLabel:用于表示该列是否为标签而不是特征。
      • configureColumnsOnly:如果设置为 true,则只有在columnconfigs中提供的列才会在迭代期间被解析和提供。
      • delimiter:用于表示用于解析输入文件每一行的字符串。
      • delimWhitespace:是的,delimiter字段应该为null,解析delimiter为空格,将连续的多个空格视为一个分隔符。

返回值:返回 tf.data.CSVDataset 对象。

示例 1:在此示例中,我们将通过从数据集中提供 URL 和谓词单列来读取和解码 CSV 文件来创建数据集。

Javascript
// Requiring module
const tf = require("@tensorflow/tfjs")
 
// Sample CSV data link
const csvUrl = `https://storage.googleapis.com/tfjs-examples/
multivariate-linear-regression/data/boston-housing-train.csv`;
 
async function predicateSingleColumn() {
    // We want to predict single column "indus".
    const list = ['crim', 'zn', 'indus',
        'chas', 'nox', 'rm',
        'age', 'dis', 'rad',
        'tax', 'ptratio',
        'lstat', 'medv'];
    const csvDataset = tf.data.csv(
        csvUrl, {
        hasHeader: true,
        columnNames: list,
        columnConfigs: {
            indus: {
                isLabel: true
            }
        },
        configuredColumnsOnly: true,
        delimWhitspace: true
    });
    console.log(csvDataset)
}
 
// Function call
predicateSingleColumn();


Javascript
// Requiring module
const tf = require("@tensorflow/tfjs")
 
// Sample CSV data link
const csvUrl = `https://storage.googleapis.com/tfjs-examples/
multivariate-linear-regression/data/boston-housing-train.csv`;
 
async function predicateMultipleColumns() {
    // We want to predict the multiple column.
    const list = ['crim', 'zn', 'indus',
        'chas', 'nox', 'rm',
        'age', 'dis', 'rad',
        'tax', 'ptratio',
        'lstat', 'medv'];
    const csvDataset = tf.data.csv(
        csvUrl, {
        hasHeader: true,
        columnNames: list,
        columnConfigs: {
            indus: {
                isLabel: true
            },
            rad: {
                isLabel: true
            },
            ram: {
                isLabel: true
            }
        },
        configuredColumnsOnly: true,
        delimWhitspace: true
    });
    console.log(csvDataset)
}
 
// Function call
predicateMultipleColumns();



输出:

CSVDataset {
  size: null,
  input: URLDataSource {
    url: 'https://storage.googleapis.com/tfjs-examples/\n' +
      'multivariate-linear-regression/data/boston-housing-train.csv',
    fileOptions: {}
  },
  hasHeader: true,
  fullColumnNames: [
    'crim',    'zn',
    'indus',   'chas',
    'nox',     'rm',
    'age',     'dis',
    'rad',     'tax',
    'ptratio', 'lstat',
    'medv'
  ],
  columnNamesValidated: false,
  columnConfigs: { indus: { isLabel: true } },
  configuredColumnsOnly: undefined,
  delimiter: ',',
  delimWhitespace: false,
  base: TextLineDataset {
    size: null,
    input: URLDataSource {
      url: 'https://storage.googleapis.com/tfjs-examples/\n' +
        'multivariate-linear-regression/data/boston-housing-train.csv',
      fileOptions: {}
    }
  }
}

示例 2:在此示例中,我们将通过提供 URL 和谓词数据集中的多个列来读取和解码 CSV 文件来创建数据集。

Javascript

// Requiring module
const tf = require("@tensorflow/tfjs")
 
// Sample CSV data link
const csvUrl = `https://storage.googleapis.com/tfjs-examples/
multivariate-linear-regression/data/boston-housing-train.csv`;
 
async function predicateMultipleColumns() {
    // We want to predict the multiple column.
    const list = ['crim', 'zn', 'indus',
        'chas', 'nox', 'rm',
        'age', 'dis', 'rad',
        'tax', 'ptratio',
        'lstat', 'medv'];
    const csvDataset = tf.data.csv(
        csvUrl, {
        hasHeader: true,
        columnNames: list,
        columnConfigs: {
            indus: {
                isLabel: true
            },
            rad: {
                isLabel: true
            },
            ram: {
                isLabel: true
            }
        },
        configuredColumnsOnly: true,
        delimWhitspace: true
    });
    console.log(csvDataset)
}
 
// Function call
predicateMultipleColumns();


输出:

CSVDataset {
  size: null,
  input: URLDataSource {
    url: 'https://storage.googleapis.com/tfjs-examples/\n' +
      'multivariate-linear-regression/data/boston-housing-train.csv',
    fileOptions: {}
  },
  hasHeader: true,
  fullColumnNames: [
    'crim',    'zn',
    'indus',   'chas',
    'nox',     'rm',
    'age',     'dis',
    'rad',     'tax',
    'ptratio', 'lstat',
    'medv'
  ],
  columnNamesValidated: false,
  columnConfigs: {
    indus: { isLabel: true },
    rad: { isLabel: true },
    ram: { isLabel: true }
  },
  configuredColumnsOnly: undefined,
  delimiter: ',',
  delimWhitespace: false,
  base: TextLineDataset {
    size: null,
    input: URLDataSource {
      url: 'https://storage.googleapis.com/tfjs-examples/\n' +
        'multivariate-linear-regression/data/boston-housing-train.csv',
      fileOptions: {}
    }
  }
}

参考: https://js.tensorflow.org/api/latest/#data.csv