TensorFlow中的一个时代是什么?

时间:2016-10-16 11:02:26

标签: tensorflow

7 个答案:

答案 0 :(得分:22)

机器学习中的一个时代是整个训练集的学习算法的整个处理。

MNIST列车组由55000个样本组成。 一旦算法处理了所有这55000个样本,就会传递一个纪元。

答案 1 :(得分:5)

时代是对样本的完整迭代。时期数是算法运行的次数。时期的数量直接影响(或不影响)训练步骤的结果(只有几个时期,你只能达到局部最小值,但是有更多的时期,你可以达到全局最小值或至少更好的局部最小值)。

答案 2 :(得分:2)

Epoch是一种方法,通过该方法我们可以将同一数据集多次传递到网络,以找到最佳权重。

由于我们使用梯度下降进行优化,并且有可能降落到局部最小值,因此为了克服这一问题,我们将n次(即n个历元)传递给同一数据集以找到最佳权重。

在这里,时代数要应用,更少的时代可能会导致拟合不足,而大量的迭代最终可能会导致过度拟合。

答案 3 :(得分:1)

只是为其他答案添加更多内容。将其视为算法改进其预测的机会数。

考虑以下将尝试获得双倍值的顺序代码。

<!DOCTYPE html>
<html>
<head>
    <title>TensorFlow.js get double of a number</title>

    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <h2>Get double of number</h2>
    <input type="text" id="txtBoxNumber" />
    <br />
    Nearly : <input type="text" id="txtBoxDouble" />
    <script type="text/javascript">
        const model = tf.sequential();
        model.add(tf.layers.dense({ units: 1, inputShape: [1] }));

        // Prepare the model for training: Specify the loss and the optimizer.
        model.compile({ loss: 'meanSquaredError', optimizer: 'sgd' });

        // Generate some synthetic data for training. (y = 2x)
        const xs = tf.tensor2d([1, 2, 3, 4, 5, 6, 7, 8,9,10,11,12], [12, 1]);
        const ys = tf.tensor2d([2, 4, 6, 8, 10, 12, 14, 16,18,20,22,24], [12, 1]);

        // Train the model using the data.
        model.fit(xs, ys, { epochs: 99999 });

        $(document).on('keyup', '#txtBoxNumber', function () {
            setInterval(getDouble, 1000);
        });
        function getDouble() {
            $('#txtBoxDouble').val(model.predict(tf.tensor2d([parseInt($('#txtBoxNumber').val())], [1, 1])).dataSync()[0]);
        }
    </script>
</body>
</html>

我已经删除了对 model.fit() 方法的等待,这将预测输出,而其他时期仍在进行中。

答案 4 :(得分:0)

Epoch不是TensorFlow框架固有的东西。它已经在机器学习领域使用了很长时间。

一个纪元是每次经过训练集中的所有样本时递增的时间步。

答案 5 :(得分:0)

一个纪元是一次训练迭代,因此在一次迭代中,所有样本都被迭代一次。当调用tensorflows train-function并定义参数时期的值时,您可以确定应该在样本数据上训练模型的次数(通常至少几百次)。

答案 6 :(得分:0)

epoch:算法遍历训练数据的次数。

仅供参考: 低时代 --> 欠拟合 高时代 --> 过拟合

最佳时期:只能通过实验得知。因此,只需将 epoch 设置为高,并在(平均)验证错误高于(平均)训练错误时使用回调停止训练。