Skip to content
This repository was archived by the owner on Mar 30, 2022. It is now read-only.

v0.3 release. #175

Merged
merged 7 commits into from
Apr 23, 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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,25 @@ To install Swift for TensorFlow, download one of the packages below and follow t

## Releases

| Download | Version | Date |
|----------|---------|------|
| [Xcode 10](https://storage.googleapis.com/swift-tensorflow-artifacts/releases/v0.3/rc1/swift-tensorflow-RELEASE-0.3-osx.pkg) | v0.3 | April 23, 2019 |
| [Ubuntu 18.04 (CPU Only)](https://storage.googleapis.com/swift-tensorflow-artifacts/releases/v0.3/rc1/swift-tensorflow-RELEASE-0.3-ubuntu18.04.tar.gz) | v0.3 | April 23, 2019 |
| [Ubuntu 18.04 (CUDA 10.0)](https://storage.googleapis.com/swift-tensorflow-artifacts/releases/v0.3/rc1/swift-tensorflow-RELEASE-0.3-cuda10.0-cudnn7-ubuntu18.04.tar.gz) | v0.3 | April 23, 2019 |
| [Ubuntu 18.04 (CUDA 9.2)](https://storage.googleapis.com/swift-tensorflow-artifacts/releases/v0.3/rc1/swift-tensorflow-RELEASE-0.3-cuda9.2-cudnn7-ubuntu18.04.tar.gz) | v0.3 | April 23, 2019 |

<details>
<summary>Older Packages</summary>

| Download | Version | Date |
|----------|---------|------|
| [Xcode 10](https://storage.googleapis.com/s4tf-kokoro-artifact-testing/versions/v0.2/rc3/swift-tensorflow-RELEASE-0.2-osx.pkg) | v0.2 | March 1, 2019 |
| [Ubuntu 18.04 (CPU Only)](https://storage.googleapis.com/s4tf-kokoro-artifact-testing/versions/v0.2/rc3/swift-tensorflow-RELEASE-0.2-ubuntu18.04.tar.gz) | v0.2 | March 1, 2019 |
| [Ubuntu 18.04 (CUDA 10.0)](https://storage.googleapis.com/s4tf-kokoro-artifact-testing/versions/v0.2/rc3/swift-tensorflow-RELEASE-0.2-cuda10.0-cudnn7-ubuntu18.04.tar.gz) | v0.2 | March 1, 2019 |
| [Ubuntu 18.04 (CUDA 9.2)](https://storage.googleapis.com/s4tf-kokoro-artifact-testing/versions/v0.2/rc3/swift-tensorflow-RELEASE-0.2-cuda9.2-cudnn7-ubuntu18.04.tar.gz) | v0.2 | March 1, 2019 |

</details>

## Development Snapshots

| Download | Date |
Expand Down
96 changes: 96 additions & 0 deletions KNOWN_ISSUES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Swift for TensorFlow Known Issues

This is a curated list of known Swift for TensorFlow issues. With every release,
new issues are added and resolved issues are updated.

Please see the [JIRA issue tracker](https://bugs.swift.org/projects/TF/issues)
for a full list of known issues.

## Version 0.3

### TensorFlow Library

* [ ] `Tensor` advanced indexing and striding are not supported on GPU.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an API link?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are actually supported. What's not supported on GPU are the subscript setters only (i.e., assignment).


## Version 0.2

### Notebook Environments (Colab and Jupyter)

* [ ] When a runtime error occurs or when you interrupt cell execution,
resources (e.g. host memory, GPU memory) do not get released. This can
lead to OOMs. ([TF-338](https://bugs.swift.org/browse/TF-338))
* Workaround: Restart the runtime (`Runtime > Restart Runtime` in the Colab
menu bar) to release all the resources.
* [ ] If the last statement on a cell evaluates to a struct that was defined in
the notebook, then you get an error ("use of undeclared type") instead of
seeing the value of the statement.
([TF-125](https://bugs.swift.org/browse/TF-125))
* Workaround: Wrap the last statement in `print()`.
* [ ] Using extensions to conform a type to a protocol (e.g. `extension MyType:
MyProtocol { ... }`), often causes duplicate conformance errors.
([TF-162](https://bugs.swift.org/browse/TF-162))
* Workaround: Add the conformance in the same cell where the type is defined.
* [ ] If a cell that declares a type executes twice, then it creates two
different types with the same name. Mixing these types can lead to
confusing error messages like `cannot convert value of type 'MyType' to
expected argument type 'MyType'`.
([TF-156](https://bugs.swift.org/browse/TF-156))
* Workaround: Re-run all cells that use the declared type, so that they use the
new type.
* [ ] The autocomplete UI should show types and documentation. It should
position your cursor in the first argument when you complete a function
call.

### Swift Standard Library Enhancements

* [ ] The
[`Differentiable`](https://www.tensorflow.org/swift/api_docs/Protocols/Differentiable)
protocol's `allDifferentiableVariables` requirement should not have a
setter. Do not use this directly through a generic type with a
`Differentiable` conformance constraint.
([TF-208](https://bugs.swift.org/browse/TF-208))

### Swift for TensorFlow Deep Learning Library

* [ ] Many Keras layers remain to be implemented, help wanted!
([swift-apis#54](https://github.com/tensorflow/swift-apis/issues/54))
* [ ] There is no built-in API for parameter sharing.
* [ ] The
[`Parameter`](https://www.tensorflow.org/swift/api_docs/Classes/Parameter)
class does not conform to `Differentiable` yet, and is not recommended for
general use.
* [ ] The compiler errors displayed when a user-defined layer struct fails to
fully satisfy the requirements of the `Layer` protocol are unclear.

### Automatic Differentiation

* [ ] Differentiation does not yet support functions with control flow.
([TF-356](https://bugs.swift.org/browse/TF-356))
* [ ] Differentiating functions with respect to an `inout` parameter is not yet
supported. ([TF-357](https://bugs.swift.org/browse/TF-357))
* [ ] The compiler will only synthesize conformance requirements for
`Differentiable` in `struct` types.
([TF-37](https://bugs.swift.org/browse/TF-37))
* [ ] The `@differentiable` attribute incorrectly passes type-checking in some
cases, when an error should be produced. This leads to compiler crashes.
([TF-449](https://bugs.swift.org/browse/TF-449))
* [x] ~~The `@differentiating` attribute leads to a compiler crash when the
derivative function is defined in a generic context that is more
constrained than the original function's generic context.
([TF-358](https://bugs.swift.org/browse/TF-358))~~
* Resolved (v0.3). The `@differentiating` attribute can register derivatives
with a generic context that is more constrained than the original function's
generic context.
* [ ] Referring to a `@differentiable` function using key paths leads to a
compiler crash. ([TF-123](https://bugs.swift.org/browse/TF-123))

### Python Interoperability

* [ ] When the execution of a Python expression raises an exception, the stack
trace will not show the Python call stack.
* [ ] When an argument to a Python function cannot be converted to a Python
object, the compiler wrongly claims that the function is of non-function
type rather than pointing out that the argument doesn't conform to
`PythonConvertible` ([TF-220](https://bugs.swift.org/browse/TF-220)).
* [ ] Python TensorFlow cannot be imported because of various issues (binary
incompatibility, symbol conflicts).
43 changes: 23 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,24 @@
> Swift for TensorFlow: No boundaries.

Swift for TensorFlow is a next-generation platform for machine learning,
incorporating the latest research across: machine learning, compilers,
differentiable programming, systems design, and beyond. This project is at
version _0.2_; it is neither feature-complete nor production-ready. But it is
ready for _pioneers_ to try it for your own projects, give us feedback, and help
shape the future!
incorporating the latest research across machine learning, compilers,
differentiable programming, systems design, and beyond. This is an early-stage
project: it is not feature-complete nor production-ready, but it is ready for
_pioneers_ to try in projects, give feedback, and help shape the future!

The Swift for TensorFlow project is currently focusing on 2 kinds of users:

1. **Advanced ML researchers** who are limited by current ML frameworks.
Swift for TensorFlow's advantages include a seamless integration with a modern general-purpose
language, allowing for more dynamic and sophisticated models. Fast
abstractions can be developed "in user-space" (as opposed to in C/C++
aka "framework-space"), resulting in modular APIs that can be easily
customized.
1. **Advanced ML researchers** who are limited by current ML frameworks. Swift
for TensorFlow's advantages include a seamless integration with a modern
general-purpose language, allowing for more dynamic and sophisticated models.
Fast abstractions can be developed "in user-space" (as opposed to in C/C++
aka "framework-space"), resulting in modular APIs that can be easily
customized.

2. **ML learners** who are just getting started with machine learning. Thanks
to Swift's support for quality tooling (e.g. context-aware autocomplete),
Swift for TensorFlow can be one of the most productive ways to get started
learning the fundamentals of machine learning.
2. **ML learners** who are just getting started with machine learning. Thanks to
Swift's support for quality tooling (e.g. context-aware autocomplete), Swift
for TensorFlow can be one of the most productive ways to get started learning
the fundamentals of machine learning.

## Getting started

Expand Down Expand Up @@ -59,6 +58,8 @@ Tutorial | Last Updated |

- [Models and Examples](https://github.com/tensorflow/swift-models)
- [TensorFlow Swift API Reference](https://www.tensorflow.org/api_docs/swift/Structs/Tensor)
- [Release Notes](RELEASES.md)
- [Known Issues](KNOWN_ISSUES.md)
- [Frequently Asked Questions](FAQ.md)

### Forums
Expand All @@ -74,7 +75,7 @@ gives you the power of
[TensorFlow](https://www.tensorflow.org) directly integrated into the
[Swift programming language](https://swift.org/about). We believe that
machine learning paradigms are so important that they deserve
**first-class language and compiler support**.
**first-class language and compiler support**.

A fundamental primitive in machine learning is gradient-based optimization:
computing function derivatives to optimize parameters. With Swift for
Expand Down Expand Up @@ -169,9 +170,10 @@ Additional code repositories that make up the core of the project include:
- [Deep learning library](https://github.com/tensorflow/swift-apis): high-level
API familiar to Keras users.

> Swift for TensorFlow is **not** intended to remain a long-term fork of the official
> Swift language. New language features will eventually go through the Swift evolution process
> as part of being considered for being pulled into master.
> Swift for TensorFlow is **not** intended to remain a long-term fork of the official
> Swift language. Language additions are designed to fit with the direction of
> Swift and will go through the [Swift
> Evolution](https://github.com/apple/swift-evolution) process.

### Jupyter Notebook support

Expand All @@ -197,7 +199,8 @@ For the most part, the core team's development is also tracked in

### Contributing

We welcome contributions from everyone. Read the [contributing guide](Contributing.md) for information on how to get started.
We welcome contributions from everyone. Read the [contributing
guide](Contributing.md) for information on how to get started.

### Code of conduct

Expand Down
Loading