def test_deserialization(self): serialized_feature_columns = feature.serialize_feature_columns( self._feature_columns) restored_feature_columns = feature.deserialize_feature_columns( serialized_feature_columns, custom_objects=self._custom_objects) self.assertEqual(restored_feature_columns['utility'].get_config(), self._feature_columns['utility'].get_config()) self.assertEqual(restored_feature_columns['unigrams'].get_config(), self._feature_columns['unigrams'].get_config())
def from_config(cls, config, custom_objects=None): """Creates a RankingNetwork layer from its config. Args: config: (dict) Layer configuration, typically the output of `get_config`. custom_objects: (dict) Optional dictionary mapping names to custom classes or functions to be considered during deserialization. Returns: A RankingNetwork layer. """ config_cp = config.copy() config_cp[ 'context_feature_columns'] = feature.deserialize_feature_columns( config_cp['context_feature_columns'], custom_objects=custom_objects) config_cp[ 'example_feature_columns'] = feature.deserialize_feature_columns( config_cp['example_feature_columns'], custom_objects=custom_objects) return cls(**config_cp)
def test_deserialization(self): serialized_feature_columns = feature.serialize_feature_columns( self._feature_columns) restored_feature_columns = feature.deserialize_feature_columns( serialized_feature_columns, custom_objects=self._custom_objects) self.assertEqual(restored_feature_columns['utility'], self._feature_columns['utility']) # TODO: Deserialized embedding feature column behavior is the # same but config is different. Hence we check for individual attributes. self.assertEqual(restored_feature_columns['unigrams'].name, 'unigrams_embedding') self.assertEqual(restored_feature_columns['unigrams'].initializer.mean, 0.0) self.assertCountEqual( restored_feature_columns['unigrams'].categorical_column. vocabulary_list, ['ranking', 'regression', 'classification', 'ordinal'])