using System;
using System.Collections.Generic;
using Tensorflow.Framework.Models;
namespace Tensorflow
{
public interface IDatasetV2 : IEnumerable<(Tensor, Tensor)>
{
Tensor variant_tensor { get; set; }
TensorShape[] output_shapes { get; }
TF_DataType[] output_types { get; }
TensorSpec[] element_spec { get; }
TensorSpec[] structure { get; set; }
///
/// Caches the elements in this dataset.
///
///
///
IDatasetV2 cache(string filename = "");
///
///
///
///
///
IDatasetV2 repeat(int count = -1);
///
/// Creates a `Dataset` that includes only 1/`num_shards` of this dataset.
///
/// The number of shards operating in parallel
/// The worker index
///
IDatasetV2 shard(int num_shards, int index);
IDatasetV2 shuffle(int buffer_size, int? seed = null, bool reshuffle_each_iteration = true);
///
/// Creates a `Dataset` that skips `count` elements from this dataset.
///
///
///
IDatasetV2 skip(int count);
IDatasetV2 batch(int batch_size, bool drop_remainder = false);
IDatasetV2 prefetch(int buffer_size = -1, int? slack_period = null);
IDatasetV2 take(int count);
IDatasetV2 optimize(string[] optimizations, string[] optimization_configs);
IDatasetV2 map(Func map_func,
bool use_inter_op_parallelism = true,
bool preserve_cardinality = false,
bool use_legacy_function = false);
IDatasetV2 map(Func map_func,
int num_parallel_calls = -1);
IDatasetV2 flat_map(Func map_func);
IDatasetV2 model(AutotuneAlgorithm algorithm, long cpu_budget);
IDatasetV2 with_options(DatasetOptions options);
///
/// Apply options, such as optimization configuration, to the dataset.
///
///
IDatasetV2 apply_options();
Tensor dataset_cardinality(string name = null);
}
}