Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tensorflow-io v0.8.0 release #472

Merged
merged 4 commits into from
Oct 16, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ version of TensorFlow I/O according to the table below:

| TensorFlow I/O Version | TensorFlow Compatibility | Release Date |
| --- | --- | --- |
| 0.8.0 | 1.15.x | Oct 16, 2019 |
| 0.7.0 | 1.14.x | Jul 14, 2019 |
| 0.6.0 | 1.13.x | May 29, 2019 |
| 0.5.0 | 1.13.x | Apr 12, 2019 |
Expand Down
26 changes: 26 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
# Release 0.8.0

## Major Features
* `tensorflow_io.json`: JSON Dataset support.
* `tensorflow_io.dicom`: Medical image DICOM format support.
* `tensorflow_io.genome`: DNA Sequence FastQ format support added.
* `tensorflow_io.ffmpeg`: FFmpeg now support selection of substreams.
* `tensorflow_io.ffmpeg`: FFmpeg now support subtitle (captioning).
* `tensorflow_io.ffmpeg`: FFmpeg now support decode video from memory.
* `tensorflow_io.image`: BMP encoding (encode_bmp) support.
* `tensorflow_io.kafka`: Kafka Dataset now support Kafka Schema Registry.
* `tensorflow_io.audio`: WAV format now support 24 bit audio streams.
* `tensorflow_io.text`: Regex capture group (`re2_full_match`) support.
* manylinux2010 compliant on Linux.

## Thanks to our Contributors

This release contains contributions from many people:

Aleksey Vlasenko, Amarpreet Singh, Bryan Cutler, Damien Pontifex, Duke Wang,
Jiacheng Xu, Marcelo Lerendegui, Mark Daoust, Ouwen Huang, Suyash Kumar,
Yong Tang, Yuan Tang, henrytansetiawan

We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.

# Release 0.7.0

## Major Features
Expand Down
8 changes: 4 additions & 4 deletions tensorflow_io/arrow/kernels/arrow_dataset_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1175,16 +1175,16 @@ class ArrowStreamDatasetOp : public ArrowOpKernelBase {
};
};

REGISTER_KERNEL_BUILDER(Name("IO>ArrowZeroCopyDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoArrowZeroCopyDataset").Device(DEVICE_CPU),
ArrowZeroCopyDatasetOp);

REGISTER_KERNEL_BUILDER(Name("IO>ArrowSerializedDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoArrowSerializedDataset").Device(DEVICE_CPU),
ArrowSerializedDatasetOp);

REGISTER_KERNEL_BUILDER(Name("IO>ArrowFeatherDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoArrowFeatherDataset").Device(DEVICE_CPU),
ArrowFeatherDatasetOp);

REGISTER_KERNEL_BUILDER(Name("IO>ArrowStreamDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoArrowStreamDataset").Device(DEVICE_CPU),
ArrowStreamDatasetOp);

} // namespace data
Expand Down
8 changes: 4 additions & 4 deletions tensorflow_io/arrow/kernels/arrow_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class ListFeatherColumnsOp : public OpKernel {
Env* env_ GUARDED_BY(mu_);
};

REGISTER_KERNEL_BUILDER(Name("IO>ListFeatherColumns").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoListFeatherColumns").Device(DEVICE_CPU),
ListFeatherColumnsOp);


Expand Down Expand Up @@ -401,11 +401,11 @@ class FeatherReadable : public IOReadableInterface {
std::unordered_map<string, int64> columns_index_;
};

REGISTER_KERNEL_BUILDER(Name("IO>FeatherReadableInit").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoFeatherReadableInit").Device(DEVICE_CPU),
IOInterfaceInitOp<FeatherReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>FeatherReadableSpec").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoFeatherReadableSpec").Device(DEVICE_CPU),
IOInterfaceSpecOp<FeatherReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>FeatherReadableRead").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoFeatherReadableRead").Device(DEVICE_CPU),
IOReadableReadOp<FeatherReadable>);

} // namespace data
Expand Down
16 changes: 8 additions & 8 deletions tensorflow_io/arrow/ops/dataset_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ limitations under the License.

namespace tensorflow {

REGISTER_OP("IO>ArrowZeroCopyDataset")
REGISTER_OP("IoArrowZeroCopyDataset")
.Input("buffer_address: uint64")
.Input("buffer_size: int64")
.Input("columns: int32")
Expand All @@ -38,7 +38,7 @@ in file format.
buffer_size: Buffer size in bytes
)doc");

REGISTER_OP("IO>ArrowSerializedDataset")
REGISTER_OP("IoArrowSerializedDataset")
.Input("serialized_batches: string")
.Input("columns: int32")
.Input("batch_size: int64")
Expand All @@ -54,7 +54,7 @@ Creates a dataset that reads serialized Arrow RecordBatches in file format.
serialized_batches: Serialized Arrow RecordBatches.
)doc");

REGISTER_OP("IO>ArrowFeatherDataset")
REGISTER_OP("IoArrowFeatherDataset")
.Input("filenames: string")
.Input("columns: int32")
.Input("batch_size: int64")
Expand All @@ -70,7 +70,7 @@ Creates a dataset that reads files in Arrow Feather format.
filenames: One or more file paths.
)doc");

REGISTER_OP("IO>ArrowStreamDataset")
REGISTER_OP("IoArrowStreamDataset")
.Input("endpoints: string")
.Input("columns: int32")
.Input("batch_size: int64")
Expand All @@ -87,7 +87,7 @@ endpoints: One or more host addresses that are serving an Arrow stream.
)doc");


REGISTER_OP("IO>ListFeatherColumns")
REGISTER_OP("IoListFeatherColumns")
.Input("filename: string")
.Input("memory: string")
.Output("columns: string")
Expand All @@ -100,7 +100,7 @@ REGISTER_OP("IO>ListFeatherColumns")
return Status::OK();
});

REGISTER_OP("IO>FeatherReadableInit")
REGISTER_OP("IoFeatherReadableInit")
.Input("input: string")
.Output("resource: resource")
.Output("components: string")
Expand All @@ -112,7 +112,7 @@ REGISTER_OP("IO>FeatherReadableInit")
return Status::OK();
});

REGISTER_OP("IO>FeatherReadableSpec")
REGISTER_OP("IoFeatherReadableSpec")
.Input("input: resource")
.Output("shape: int64")
.Output("dtype: int64")
Expand All @@ -123,7 +123,7 @@ REGISTER_OP("IO>FeatherReadableSpec")
return Status::OK();
});

REGISTER_OP("IO>FeatherReadableRead")
REGISTER_OP("IoFeatherReadableRead")
.Input("input: resource")
.Input("start: int64")
.Input("stop: int64")
Expand Down
6 changes: 3 additions & 3 deletions tensorflow_io/audio/kernels/audio_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -243,11 +243,11 @@ class WAVReadable : public IOReadableInterface {
struct WAVHeader header_;
};

REGISTER_KERNEL_BUILDER(Name("IO>WAVReadableInit").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoWAVReadableInit").Device(DEVICE_CPU),
IOInterfaceInitOp<WAVReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>WAVReadableSpec").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoWAVReadableSpec").Device(DEVICE_CPU),
IOInterfaceSpecOp<WAVReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>WAVReadableRead").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoWAVReadableRead").Device(DEVICE_CPU),
IOReadableReadOp<WAVReadable>);

} // namespace data
Expand Down
6 changes: 3 additions & 3 deletions tensorflow_io/audio/ops/audio_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ limitations under the License.

namespace tensorflow {

REGISTER_OP("IO>WAVReadableInit")
REGISTER_OP("IoWAVReadableInit")
.Input("input: string")
.Output("resource: resource")
.Attr("container: string = ''")
Expand All @@ -29,7 +29,7 @@ REGISTER_OP("IO>WAVReadableInit")
return Status::OK();
});

REGISTER_OP("IO>WAVReadableSpec")
REGISTER_OP("IoWAVReadableSpec")
.Input("input: resource")
.Output("shape: int64")
.Output("dtype: int64")
Expand All @@ -41,7 +41,7 @@ REGISTER_OP("IO>WAVReadableSpec")
return Status::OK();
});

REGISTER_OP("IO>WAVReadableRead")
REGISTER_OP("IoWAVReadableRead")
.Input("input: resource")
.Input("start: int64")
.Input("stop: int64")
Expand Down
12 changes: 6 additions & 6 deletions tensorflow_io/avro/kernels/avro_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,9 @@ class ReadAvroOp : public OpKernel {
Env* env_ GUARDED_BY(mu_);
};

REGISTER_KERNEL_BUILDER(Name("IO>ListAvroColumns").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoListAvroColumns").Device(DEVICE_CPU),
ListAvroColumnsOp);
REGISTER_KERNEL_BUILDER(Name("IO>ReadAvro").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoReadAvro").Device(DEVICE_CPU),
ReadAvroOp);


Expand Down Expand Up @@ -528,13 +528,13 @@ class AvroReadable : public IOReadableInterface {
std::unordered_map<string, int64> columns_index_;
};

REGISTER_KERNEL_BUILDER(Name("IO>AvroReadableInit").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoAvroReadableInit").Device(DEVICE_CPU),
IOInterfaceInitOp<AvroReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>AvroReadableSpec").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoAvroReadableSpec").Device(DEVICE_CPU),
IOInterfaceSpecOp<AvroReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>AvroReadablePartitions").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoAvroReadablePartitions").Device(DEVICE_CPU),
IOReadablePartitionsOp<AvroReadable>);
REGISTER_KERNEL_BUILDER(Name("IO>AvroReadableRead").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoAvroReadableRead").Device(DEVICE_CPU),
IOReadableReadOp<AvroReadable>);

} // namespace data
Expand Down
12 changes: 6 additions & 6 deletions tensorflow_io/avro/ops/avro_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ limitations under the License.

namespace tensorflow {

REGISTER_OP("IO>ListAvroColumns")
REGISTER_OP("IoListAvroColumns")
.Input("filename: string")
.Input("schema: string")
.Input("memory: string")
Expand All @@ -31,7 +31,7 @@ REGISTER_OP("IO>ListAvroColumns")
return Status::OK();
});

REGISTER_OP("IO>ReadAvro")
REGISTER_OP("IoReadAvro")
.Input("filename: string")
.Input("schema: string")
.Input("column: string")
Expand All @@ -45,7 +45,7 @@ REGISTER_OP("IO>ReadAvro")
return Status::OK();
});

REGISTER_OP("IO>AvroReadableInit")
REGISTER_OP("IoAvroReadableInit")
.Input("input: string")
.Input("metadata: string")
.Output("resource: resource")
Expand All @@ -58,7 +58,7 @@ REGISTER_OP("IO>AvroReadableInit")
return Status::OK();
});

REGISTER_OP("IO>AvroReadableSpec")
REGISTER_OP("IoAvroReadableSpec")
.Input("input: resource")
.Output("shape: int64")
.Output("dtype: int64")
Expand All @@ -69,7 +69,7 @@ REGISTER_OP("IO>AvroReadableSpec")
return Status::OK();
});

REGISTER_OP("IO>AvroReadableRead")
REGISTER_OP("IoAvroReadableRead")
.Input("input: resource")
.Input("start: int64")
.Input("stop: int64")
Expand All @@ -87,7 +87,7 @@ REGISTER_OP("IO>AvroReadableRead")
return Status::OK();
});

REGISTER_OP("IO>AvroReadablePartitions")
REGISTER_OP("IoAvroReadablePartitions")
.Input("input: resource")
.Output("partitions: int64")
.SetShapeFn([](shape_inference::InferenceContext* c) {
Expand Down
2 changes: 1 addition & 1 deletion tensorflow_io/bigquery/kernels/bigquery_dataset_op.cc
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ class BigQueryDatasetOp : public DatasetOpKernel {
};
};

REGISTER_KERNEL_BUILDER(Name("IO>BigQueryDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigQueryDataset").Device(DEVICE_CPU),
BigQueryDatasetOp);

} // namespace
Expand Down
4 changes: 2 additions & 2 deletions tensorflow_io/bigquery/kernels/bigquery_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class BigQueryClientOp : public OpKernel {
bool initialized_ GUARDED_BY(mu_) = false;
};

REGISTER_KERNEL_BUILDER(Name("IO>BigQueryClient").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigQueryClient").Device(DEVICE_CPU),
BigQueryClientOp);

class BigQueryReadSessionOp : public OpKernel {
Expand Down Expand Up @@ -208,7 +208,7 @@ class BigQueryReadSessionOp : public OpKernel {
bool initialized_ GUARDED_BY(mu_) = false;
};

REGISTER_KERNEL_BUILDER(Name("IO>BigQueryReadSession").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigQueryReadSession").Device(DEVICE_CPU),
BigQueryReadSessionOp);

} // namespace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class BigQueryTestClientOp : public OpKernel {
string fake_server_address_;
};

REGISTER_KERNEL_BUILDER(Name("IO>BigQueryTestClient").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigQueryTestClient").Device(DEVICE_CPU),
BigQueryTestClientOp);

} // namespace
Expand Down
6 changes: 3 additions & 3 deletions tensorflow_io/bigquery/ops/bigquery_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ limitations under the License.

namespace tensorflow {

REGISTER_OP("IO>BigQueryClient")
REGISTER_OP("IoBigQueryClient")
.Attr("container: string = ''")
.Attr("shared_name: string = ''")
.Output("client: resource")
.SetShapeFn(shape_inference::ScalarShape);

REGISTER_OP("IO>BigQueryReadSession")
REGISTER_OP("IoBigQueryReadSession")
.Input("client: resource")
.Attr("parent: string")
.Attr("project_id: string")
Expand All @@ -44,7 +44,7 @@ REGISTER_OP("IO>BigQueryReadSession")
return tensorflow::Status::OK();
});

REGISTER_OP("IO>BigQueryDataset")
REGISTER_OP("IoBigQueryDataset")
.Input("client: resource")
.Input("stream: string")
.Input("avro_schema: string")
Expand Down
2 changes: 1 addition & 1 deletion tensorflow_io/bigquery/ops/bigquery_test_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ limitations under the License.

namespace tensorflow {

REGISTER_OP("IO>BigQueryTestClient")
REGISTER_OP("IoBigQueryTestClient")
.Attr("fake_server_address: string")
.Attr("container: string = ''")
.Attr("shared_name: string = ''")
Expand Down
6 changes: 3 additions & 3 deletions tensorflow_io/bigtable/kernels/bigtable_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class BigtableClientOp : public OpKernel {
bool initialized_ GUARDED_BY(mu_) = false;
};

REGISTER_KERNEL_BUILDER(Name("IO>BigtableClient").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigtableClient").Device(DEVICE_CPU),
BigtableClientOp);

class BigtableTableOp : public OpKernel {
Expand Down Expand Up @@ -168,7 +168,7 @@ class BigtableTableOp : public OpKernel {
bool initialized_ GUARDED_BY(mu_) = false;
};

REGISTER_KERNEL_BUILDER(Name("IO>BigtableTable").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigtableTable").Device(DEVICE_CPU),
BigtableTableOp);

} // namespace
Expand Down Expand Up @@ -353,7 +353,7 @@ class ToBigtableOp : public AsyncOpKernel {
std::unique_ptr<thread::ThreadPool> thread_pool_;
};

REGISTER_KERNEL_BUILDER(Name("IO>DatasetToBigtable").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoDatasetToBigtable").Device(DEVICE_CPU),
ToBigtableOp);

} // namespace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ class BigtableLookupDatasetOp : public UnaryDatasetOpKernel {
};
};

REGISTER_KERNEL_BUILDER(Name("IO>BigtableLookupDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigtableLookupDataset").Device(DEVICE_CPU),
BigtableLookupDatasetOp);

} // namespace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class BigtablePrefixKeyDatasetOp : public DatasetOpKernel {
};
};

REGISTER_KERNEL_BUILDER(Name("IO>BigtablePrefixKeyDataset").Device(DEVICE_CPU),
REGISTER_KERNEL_BUILDER(Name("IoBigtablePrefixKeyDataset").Device(DEVICE_CPU),
BigtablePrefixKeyDatasetOp);

} // namespace
Expand Down