Introduction to TensorFlow for A
2020-04-08 本文已影响0人
学术界末流打工人
Week1
Building the model
导入tensorflow:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest"></script>
定义模型:
<script lang="js">
// 表示定义将按照一系列顺序进行操作,我们说我们的模型是按顺序定义的
const model = tf.sequential();
// 我们的模型是一层的,所以我们添加了一个dense,这个dense只有一个神经元
model.add(tf.layers.dense({units:1,inputShape:[1]}))
// 定义损失函数为均方误差, 定义随机梯度下降
model.compile({loss:'meanSquaredError',optimizer:'sgd'})
// 输出结构的summary
model.summary();
</script>
定义训练函数并调用
<script lang="js">
async function doTraining(model){
const history =
// fit x 和 y,js的异步操作,等待结果
await model.fit(
xs,ys,
{epochs:500,
callback:{
onEpochEnd: async(epoch,logs) =>{
console.log("Epoch:" + epoch + "Loss:"+logs.loss)
}
}}
)
}
// 表示定义将按照一系列顺序进行操作,我们说我们的模型是按顺序定义的
const model = tf.sequential();
// 我们的模型是一层的,所以我们添加了一个dense,这个dense只有一个神经元
model.add(tf.layers.dense({units:1,inputShape:[1]}))
// 定义损失函数为均方误差, 定义随机梯度下降
model.compile({loss:'meanSquaredError',optimizer:'sgd'})
// 输出结构的summary
model.summary();
async function doTraining(model){
const history =
// fit x 和 y,js的异步操作,等待结果
await model.fit(
xs,ys,
{epochs:500,
callback:{
onEpochEnd: async(epoch,logs) =>{
console.log("Epoch:" + epoch + "Loss:"+logs.loss)
}
}}
)
}
// doTraining是一个异步方法
doTraining(model).then(()=>{
// 用alert进行callback
alert(model.predict(tf.tensor2d([10],[1,1])))
})
</script>