Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qoncept/TensorSwift
A lightweight library to calculate tensors in Swift, which has similar APIs to TensorFlow's
https://github.com/qoncept/TensorSwift
Last synced: 6 days ago
JSON representation
A lightweight library to calculate tensors in Swift, which has similar APIs to TensorFlow's
- Host: GitHub
- URL: https://github.com/qoncept/TensorSwift
- Owner: qoncept
- License: mit
- Created: 2016-03-11T09:50:51.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-24T09:02:48.000Z (about 7 years ago)
- Last Synced: 2024-04-24T19:01:47.647Z (8 months ago)
- Language: Swift
- Homepage:
- Size: 13.7 MB
- Stars: 322
- Watchers: 22
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - TensorSwift - A lightweight library to calculate tensors in Swift, which has similar APIs to TensorFlow's. (Machine Learning / Other Hardware)
- awesome-machine-learning - TensorSwift
- awesome-ios-star - TensorSwift - A lightweight library to calculate tensors in Swift, which has similar APIs to TensorFlow's. (Machine Learning / Other Hardware)
README
# TensorSwift
_TensorSwift_ is a lightweight library to calculate tensors, which has similar APIs to [_TensorFlow_](https://www.tensorflow.org/)'s. _TensorSwift_ is useful to simulate calculating tensors in Swift **using models trained by _TensorFlow_**.
```swift
let a = Tensor(shape: [2, 3], elements: [1, 2, 3, 4, 5, 6])
let b = Tensor(shape: [2, 3], elements: [7, 8, 9, 10, 11, 12])
let sum = a + b // Tensor(shape: [2, 3], elements: [8, 10, 12, 14, 16, 18])
let mul = a * b // Tensor(shape: [2, 3], elements: [7, 16, 27, 40, 55, 72])let c = Tensor(shape: [3, 1], elements: [7, 8, 9])
let matmul = a.matmul(c) // Tensor(shape: [2, 1], elements: [50, 122])let zeros = Tensor(shape: [2, 3, 4])
let ones = Tensor(shape: [2, 3, 4], element: 1)
```## Deep MNIST for Experts
![deep-mnist.gif](Resources/DeepMnist.gif)
The following code shows how to simulate [Deep MNIST for Experts](https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html), a tutorial of _TensorFlow_, by _TensorSwift_.
```swift
public struct Classifier {
public let W_conv1: Tensor
public let b_conv1: Tensor
public let W_conv2: Tensor
public let b_conv2: Tensor
public let W_fc1: Tensor
public let b_fc1: Tensor
public let W_fc2: Tensor
public let b_fc2: Tensor
public func classify(_ x_image: Tensor) -> Int {
let h_conv1 = (x_image.conv2d(filter: W_conv1, strides: [1, 1, 1]) + b_conv1).relu()
let h_pool1 = h_conv1.maxPool(kernelSize: [2, 2, 1], strides: [2, 2, 1])
let h_conv2 = (h_pool1.conv2d(filter: W_conv2, strides: [1, 1, 1]) + b_conv2).relu()
let h_pool2 = h_conv2.maxPool(kernelSize: [2, 2, 1], strides: [2, 2, 1])
let h_pool2_flat = h_pool2.reshaped([1, Dimension(7 * 7 * 64)])
let h_fc1 = (h_pool2_flat.matmul(W_fc1) + b_fc1).relu()
let y_conv = (h_fc1.matmul(W_fc2) + b_fc2).softmax()return y_conv.elements.enumerated().max { $0.1 < $1.1 }!.0
}
}
```## Installation
### Swift Package Manager
```swift
.Package(url: "[email protected]:qoncept/TensorSwift.git", from: "0.2.0"),
```### CocoaPods
```
pod 'TensorSwift', '~> 0.2'
```### Carthage
```
github "qoncept/TensorSwift" ~> 0.2
```## License
[The MIT License](LICENSE)