尝试将 tensorflow python 移植到 javascript
Trying to port a tensorflow python to javascript
我正在尝试将这个 python 代码移植到 javascript,我在我的 js 脚本中得到了非常不同的结果,所以我想确保我的 dense层 是正确的:
Python
let trainValues = // data source
let trainLabels = // data source
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(24, activation=tf.nn.relu),
tf.keras.layers.Dense(2, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x=trainValues, y=trainLabels, epochs=5)
Node.js
let trainValues = // data source
let trainLabels = // data source
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [24], units: 24, activation: 'relu'}));
model.add(tf.layers.dense({units: 1, activation: 'softmax'}));
model.compile({
loss: tf.losses.softmaxCrossEntropy,
optimizer: tf.train.adam(),
metrics: ['accuracy']
});
trainValues = tf.tensor2d(trainValues);
trainLabels = tf.tensor1d(trainLabels);
await model.fit(trainValues, trainLabels, {
epochs: 5
});
你的第二个密集层似乎有不同数量的单位(2
in python,1
in JavaScript)。
此外,您的损失函数不同(sparse_categorical_crossentropy
in python,softmaxCrossEntropy
in JavaScript)。您无需提供 tf.losses.*
函数之一,只需在此处传递一个字符串(定义为 here)。
要在 JavaScript 中使用相同的模型,代码应如下所示:
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [24], units: 24, activation: 'relu'}));
model.add(tf.layers.dense({units: 2, activation: 'softmax'}));
model.compile({
loss: 'sparseCategoricalCrossentropy',
optimizer: tf.train.adam(),
metrics: ['accuracy']
});
我假设输入单元的数量是 24
并且您正确处理了数据。
我正在尝试将这个 python 代码移植到 javascript,我在我的 js 脚本中得到了非常不同的结果,所以我想确保我的 dense层 是正确的:
Python
let trainValues = // data source
let trainLabels = // data source
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(24, activation=tf.nn.relu),
tf.keras.layers.Dense(2, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x=trainValues, y=trainLabels, epochs=5)
Node.js
let trainValues = // data source
let trainLabels = // data source
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [24], units: 24, activation: 'relu'}));
model.add(tf.layers.dense({units: 1, activation: 'softmax'}));
model.compile({
loss: tf.losses.softmaxCrossEntropy,
optimizer: tf.train.adam(),
metrics: ['accuracy']
});
trainValues = tf.tensor2d(trainValues);
trainLabels = tf.tensor1d(trainLabels);
await model.fit(trainValues, trainLabels, {
epochs: 5
});
你的第二个密集层似乎有不同数量的单位(2
in python,1
in JavaScript)。
此外,您的损失函数不同(sparse_categorical_crossentropy
in python,softmaxCrossEntropy
in JavaScript)。您无需提供 tf.losses.*
函数之一,只需在此处传递一个字符串(定义为 here)。
要在 JavaScript 中使用相同的模型,代码应如下所示:
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [24], units: 24, activation: 'relu'}));
model.add(tf.layers.dense({units: 2, activation: 'softmax'}));
model.compile({
loss: 'sparseCategoricalCrossentropy',
optimizer: tf.train.adam(),
metrics: ['accuracy']
});
我假设输入单元的数量是 24
并且您正确处理了数据。