加载 csv 以在 tensorflow.js 中执行推理
Loading a csv to perform inference in tensorflow.js
我尝试了多种解析 csv 的方法。我有一个 csv 文件。我想从数据中获取数组。
Pandas相当于
pd.read_csv('csv_file.csv').values # returns [100, 14] dim array
我试过 papa parse 来解析 csv 文件。
let parsed_data = papa.parse(file,
{
header: true ,
newline: '\n',
dynamicTyping: true,
complete:function(results)
{
data = results.data;
}}
);
这个returns一个[100,1]暗数组。
我尝试了 tf.data.csv
但它似乎不起作用
async function parse_data(){
csvDataset = tf.data.csv(data_path,
{
hasHeader: true
}
);
console.log(csvDataset);
};
Console.log returns Object { size: null, input: {…}
我想进行推理,类似这样(Python 等效)
model.predict(tf.tensor(pd.read_csv('csv').values))
tf.data.csv
returns 一个 tf.csv.Dataset
这是一个异步迭代器。可以检索数据以创建张量。有人问过类似的问题 here
const csvUrl =
'https://storage.googleapis.com/tfjs-examples/multivariate-linear-regression/data/boston-housing-train.csv';
async function run() {
const csvDataset = tf.data.csv(
csvUrl, {
columnConfigs: {
medv: {
isLabel: true
}
}
});
const numOfFeatures = (await csvDataset.columnNames()).length - 1;
// Prepare the Dataset for training.
const flattenedDataset =
csvDataset
.map(({xs, ys}) =>
{
// Convert xs(features) and ys(labels) from object form (keyed by
// column name) to array form.
return {xs:Object.values(xs), ys:Object.values(ys)};
})
//.batch(10);
const it = await flattenedDataset.iterator()
const xs = []
const ys = []
// read only the data for the first 5 rows
// all the data need not to be read once
// since it will consume a lot of memory
for (let i = 0; i < 5; i++) {
let e = await it.next()
xs.push(e.value.xs)
ys.push(e.value.ys)
}
const features = tf.tensor(xs)
const labels = tf.tensor(ys)
console.log(features.shape)
console.log(labels.shape)
}
run();
我尝试了多种解析 csv 的方法。我有一个 csv 文件。我想从数据中获取数组。 Pandas相当于
pd.read_csv('csv_file.csv').values # returns [100, 14] dim array
我试过 papa parse 来解析 csv 文件。
let parsed_data = papa.parse(file,
{
header: true ,
newline: '\n',
dynamicTyping: true,
complete:function(results)
{
data = results.data;
}}
);
这个returns一个[100,1]暗数组。
我尝试了 tf.data.csv
但它似乎不起作用
async function parse_data(){
csvDataset = tf.data.csv(data_path,
{
hasHeader: true
}
);
console.log(csvDataset);
};
Console.log returns Object { size: null, input: {…}
我想进行推理,类似这样(Python 等效)
model.predict(tf.tensor(pd.read_csv('csv').values))
tf.data.csv
returns 一个 tf.csv.Dataset
这是一个异步迭代器。可以检索数据以创建张量。有人问过类似的问题 here
const csvUrl =
'https://storage.googleapis.com/tfjs-examples/multivariate-linear-regression/data/boston-housing-train.csv';
async function run() {
const csvDataset = tf.data.csv(
csvUrl, {
columnConfigs: {
medv: {
isLabel: true
}
}
});
const numOfFeatures = (await csvDataset.columnNames()).length - 1;
// Prepare the Dataset for training.
const flattenedDataset =
csvDataset
.map(({xs, ys}) =>
{
// Convert xs(features) and ys(labels) from object form (keyed by
// column name) to array form.
return {xs:Object.values(xs), ys:Object.values(ys)};
})
//.batch(10);
const it = await flattenedDataset.iterator()
const xs = []
const ys = []
// read only the data for the first 5 rows
// all the data need not to be read once
// since it will consume a lot of memory
for (let i = 0; i < 5; i++) {
let e = await it.next()
xs.push(e.value.xs)
ys.push(e.value.ys)
}
const features = tf.tensor(xs)
const labels = tf.tensor(ys)
console.log(features.shape)
console.log(labels.shape)
}
run();