Split a list of _TPUEmbeddingColumn into sequence and non-sequence columns. For use in a TPUEstimator model_fn function. E.g. def model_fn(features): sequence_columns, feature_columns = ( tf.tpu.feature_column.split_sequence_columns(feature_columns)) input = tf.feature_column.i
(feature_columns)
| 571 | |
| 572 | |
| 573 | def split_sequence_columns_v2(feature_columns): |
| 574 | """Split a list of _TPUEmbeddingColumn into sequence and non-sequence columns. |
| 575 | |
| 576 | For use in a TPUEstimator model_fn function. E.g. |
| 577 | |
| 578 | def model_fn(features): |
| 579 | sequence_columns, feature_columns = ( |
| 580 | tf.tpu.feature_column.split_sequence_columns(feature_columns)) |
| 581 | input = tf.feature_column.input_layer( |
| 582 | features=features, feature_columns=feature_columns) |
| 583 | sequence_features, sequence_lengths = ( |
| 584 | tf.contrib.feature_column.sequence_input_layer( |
| 585 | features=features, feature_columns=sequence_columns)) |
| 586 | |
| 587 | Args: |
| 588 | feature_columns: A list of _TPUEmbeddingColumns to split. |
| 589 | |
| 590 | Returns: |
| 591 | Two lists of _TPUEmbeddingColumns, the first is the sequence columns and the |
| 592 | second is the non-sequence columns. |
| 593 | """ |
| 594 | sequence_columns = [] |
| 595 | non_sequence_columns = [] |
| 596 | for column in feature_columns: |
| 597 | if not isinstance(column, (_TPUEmbeddingColumnV2, |
| 598 | _TPUSharedEmbeddingColumnV2)): |
| 599 | raise TypeError( |
| 600 | 'column must be a _TPUEmbeddingColumnV2 or ' |
| 601 | '_TPUSharedEmbeddingColumnV2 but got %s instead.' % (type(column))) |
| 602 | if column.is_sequence_column(): |
| 603 | sequence_columns.append(column) |
| 604 | else: |
| 605 | non_sequence_columns.append(column) |
| 606 | return sequence_columns, non_sequence_columns |
nothing calls this directly
no test coverage detected