{"id":9652,"library":"deepecho","title":"DeepEcho Synthetic Data Generator","description":"DeepEcho is a Python library within the SDV ecosystem for generating sequential synthetic data from real-world datasets using Generative Adversarial Networks (GANs). It's designed for data that has a temporal or sequential component, such as time series or event logs. Currently at version 0.8.1, the library maintains an active development pace with frequent updates and bug fixes, often aligning with the broader SDV ecosystem's release cycle.","status":"active","version":"0.8.1","language":"en","source_language":"en","source_url":"https://github.com/sdv-dev/DeepEcho","tags":["synthetic data","GAN","sequential data","time series","privacy","machine learning","sdv"],"install":[{"cmd":"pip install deepecho","lang":"bash","label":"Install DeepEcho"}],"dependencies":[{"reason":"DeepEcho relies on SDV for data loading, preprocessing, and metadata management, especially for sequential data.","package":"sdv","optional":false},{"reason":"Required Python version range.","package":"python","version":">=3.9, <3.15","optional":false}],"imports":[{"note":"As of DeepEcho v0.7.0, `DeepEchoSynthesizer` was removed. The main entry point is now `DeepEcho` in `deepecho.models`.","wrong":"from deepecho.synthesizers import DeepEchoSynthesizer","symbol":"DeepEcho","correct":"from deepecho.models import DeepEcho"}],"quickstart":{"code":"from deepecho.models import DeepEcho\nfrom sdv.datasets.demo import get_sequential_demo\n\n# Get demo data for sequential modeling from SDV\nmetadata, data = get_sequential_demo()\n\n# Initialize and fit the DeepEcho model\n# Metadata is crucial for DeepEcho to understand the sequential structure\nmodel = DeepEcho(metadata=metadata)\nmodel.fit(data)\n\n# Generate 100 rows of synthetic sequential data\nsynthetic_data = model.sample(num_rows=100)\n\nprint(synthetic_data.head())","lang":"python","description":"This quickstart demonstrates how to use DeepEcho to generate synthetic sequential data. It uses `sdv.datasets.demo.get_sequential_demo` to obtain sample sequential data and its corresponding metadata, which is essential for DeepEcho to correctly model the data's structure. The `DeepEcho` model is then initialized with the metadata, fitted to the real data, and finally used to sample new synthetic sequences."},"warnings":[{"fix":"Update your import statement from `from deepecho.synthesizers import DeepEchoSynthesizer` to `from deepecho.models import DeepEcho`.","message":"The main class `DeepEchoSynthesizer` was removed in v0.7.0. It was replaced by `DeepEcho` in `deepecho.models`.","severity":"breaking","affected_versions":">=0.7.0"},{"fix":"Ensure you are using `sdv` to load your data and generate a `sdv.metadata.Metadata` object. Pass this metadata object explicitly to the `DeepEcho` model constructor: `model = DeepEcho(metadata=my_metadata)`.","message":"DeepEcho models no longer handle data preprocessing internally as of v0.7.0. All preprocessing, data loading, and metadata generation must now be handled externally, primarily using the `sdv` library.","severity":"breaking","affected_versions":">=0.7.0"},{"fix":"Thoroughly review and, if necessary, manually adjust the `sdv` metadata to accurately reflect your sequential data's structure. Use `metadata.set_table_meta()` to specify keys if auto-detection is insufficient.","message":"When working with sequential data, it is critical that the `metadata` object correctly defines the primary key, parent key (if nested), and sequence key for each table. Incorrect metadata can lead to errors during fitting or generation of nonsensical synthetic data.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-17T00:00:00.000Z","next_check":"2026-07-16T00:00:00.000Z","problems":[{"fix":"Change your import statement to `from deepecho.models import DeepEcho`.","cause":"Attempting to import the `DeepEchoSynthesizer` class, which was removed in DeepEcho v0.7.0.","error":"ModuleNotFoundError: No module named 'deepecho.synthesizers'"},{"fix":"Obtain a `sdv.metadata.Metadata` object for your data (e.g., using `sdv.metadata.SingleTableMetadata.load_from_dataframe()`) and pass it to the DeepEcho constructor: `model = DeepEcho(metadata=my_metadata)`.","cause":"As of v0.7.0, `DeepEcho` requires a `metadata` object during initialization to understand the data structure, especially for sequential data.","error":"TypeError: DeepEcho.__init__() missing 1 required positional argument: 'metadata'"},{"fix":"Verify that your input dataframe contains all columns specified as keys in the `metadata`. Ensure column names in the dataframe exactly match those in the metadata.","cause":"The dataframe provided to `DeepEcho.fit()` is missing a column that is declared as a primary key in the `metadata` object, or the column name in the data does not match the metadata.","error":"ValueError: The input data must contain the primary key column 'column_name' defined in the metadata."}]}