# tf.keras.callbacks.CSVLogger

<br />

|---|---|
| [![](https://www.tensorflow.org/images/tf_logo_32px.png) TensorFlow 1 version](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/keras/callbacks/CSVLogger) | [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L1853-L1942) |

Callback that streams epoch results to a csv file.

Inherits From: [`Callback`](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/callbacks/Callback)

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.keras.callbacks.CSVLogger`](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/CSVLogger)

<br />

    tf.keras.callbacks.CSVLogger(
        filename, separator=',', append=False
    )

Supports all values that can be represented as a string,
including 1D iterables such as np.ndarray.

#### Example:

    csv_logger = CSVLogger('training.log')
    model.fit(X_train, Y_train, callbacks=[csv_logger])

<br />

<br />

<br />

| ## Arguments ||
|---|---|
| `filename` | filename of the csv file, e.g. 'run/log.csv'. |
| `separator` | string used to separate elements in the csv file. |
| `append` | True: append if file exists (useful for continuing training). False: overwrite existing file, |

<br />

## Methods

### `on_batch_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L464-L465)

    on_batch_begin(
        batch, logs=None
    )

A backwards compatibility alias for `on_train_batch_begin`.

### `on_batch_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L467-L468)

    on_batch_end(
        batch, logs=None
    )

A backwards compatibility alias for `on_train_batch_end`.

### `on_epoch_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L470-L480)

    on_epoch_begin(
        epoch, logs=None
    )

Called at the start of an epoch.

Subclasses should override for any actions to run. This function should only
be called during TRAIN mode.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `epoch` | integer, index of epoch. |
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_epoch_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L1900-L1938)

    on_epoch_end(
        epoch, logs=None
    )

Called at the end of an epoch.

Subclasses should override for any actions to run. This function should only
be called during TRAIN mode.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `epoch` | integer, index of epoch. |
| `logs` | dict, metric results for this training epoch, and for the validation epoch if validation is performed. Validation result keys are prefixed with `val_`. |

<br />

### `on_predict_batch_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L547-L556)

    on_predict_batch_begin(
        batch, logs=None
    )

Called at the beginning of a batch in `predict` methods.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Has keys `batch` and `size` representing the current batch number and the size of the batch. |

<br />

### `on_predict_batch_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L558-L566)

    on_predict_batch_end(
        batch, logs=None
    )

Called at the end of a batch in `predict` methods.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Metric results for this batch. |

<br />

### `on_predict_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L608-L616)

    on_predict_begin(
        logs=None
    )

Called at the beginning of prediction.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_predict_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L618-L626)

    on_predict_end(
        logs=None
    )

Called at the end of prediction.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_test_batch_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L520-L532)

    on_test_batch_begin(
        batch, logs=None
    )

Called at the beginning of a batch in `evaluate` methods.

Also called at the beginning of a validation batch in the `fit`
methods, if validation data is provided.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Has keys `batch` and `size` representing the current batch number and the size of the batch. |

<br />

### `on_test_batch_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L534-L545)

    on_test_batch_end(
        batch, logs=None
    )

Called at the end of a batch in `evaluate` methods.

Also called at the end of a validation batch in the `fit`
methods, if validation data is provided.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Metric results for this batch. |

<br />

### `on_test_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L588-L596)

    on_test_begin(
        logs=None
    )

Called at the beginning of evaluation or validation.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_test_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L598-L606)

    on_test_end(
        logs=None
    )

Called at the end of evaluation or validation.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_train_batch_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L495-L506)

    on_train_batch_begin(
        batch, logs=None
    )

Called at the beginning of a training batch in `fit` methods.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Has keys `batch` and `size` representing the current batch number and the size of the batch. |

<br />

### `on_train_batch_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L508-L518)

    on_train_batch_end(
        batch, logs=None
    )

Called at the end of a training batch in `fit` methods.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `batch` | integer, index of batch within the current epoch. |
| `logs` | dict. Metric results for this batch. |

<br />

### `on_train_begin`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L1888-L1898)

    on_train_begin(
        logs=None
    )

Called at the beginning of training.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `on_train_end`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L1940-L1942)

    on_train_end(
        logs=None
    )

Called at the end of training.

Subclasses should override for any actions to run.

<br />

<br />

<br />

| Arguments ||
|---|---|
| `logs` | dict. Currently no data is passed to this argument for this method but that may change in the future. |

<br />

### `set_model`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L461-L462)

    set_model(
        model
    )

### `set_params`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/callbacks.py#L458-L459)

    set_params(
        params
    )