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