Skip to content

Instantly share code, notes, and snippets.

View marcrasi's full-sized avatar
🔬
LLMing

marcrasi

🔬
LLMing
  • Stealth Startup
View GitHub Profile
protocol Proto {
@differentiable(reverse)
func f(_ x: Float) -> Float
}
func callF<T: Proto>(_ t: T, _ x: Float) -> Float {
return t.f(x)
}
func gradFWrtX<T: Proto>(_ t: T, at x: Float) -> Float {
sil_stage canonical
import Builtin
import Swift
import SwiftShims
protocol Proto {
@differentiable(reverse)
func f(_ x: Float) -> Float
}
# -*- coding: utf-8 -*-
"""split_into_batches_oom.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1UWb-URpxZgdkTICBZlxGWfJr7U35uvJk
"""
# %enableCompletion
import TensorFlow
struct ConvBN: Layer {
var conv: Conv2D<Float>
var norm: BatchNorm<Float>
public init(filterShape: (Int, Int, Int, Int), strides: (Int, Int) = (1, 1),
padding: Padding, learningPhaseIndicator: LearningPhaseIndicator) {
self.conv = Conv2D(
filterShape: filterShape, strides: strides, padding: padding)
@marcrasi
marcrasi / installing-swift-packages.md
Created February 22, 2019 04:30
Installing Swift Packages in Colab

First the package needs a dynamic library product. You might have to modify the package to have one. Here's an example.

Now make a notebook that clones the package, builds the package, and copies the build artifacts into the right places. Here's an example.

In a Swift notebook, dlopen the shared library and then import the module. For example:

import Glibc
dlopen("/swift/toolchain/usr/lib/swift/linux/libDeckOfPlayingCards.so", RTLD_NOW)
import DeckOfPlayingCards
[1/33] Performing build step for 'libdispatch'
ninja: no work to do.
[2/27] Compiling /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/linux/x86_64/Swift.o
FAILED: stdlib/public/core/linux/x86_64/Swift.o
cd /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core && /usr/bin/python /usr/local/google/home/marcrasi/swift-base/swift/utils/line-directive @/usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/OdCaQ.txt -- /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/./bin/swiftc -c -sdk / -target x86_64-unknown-linux-gnu -resource-dir /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/./lib/swift -O -I /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux-x86_64/./lib/swift/linux/x86_64 -module-cache-path /usr/local/google/home/marcrasi/swift-base/build/buildbot_linux/swift-linux
public struct ProductSpaceVector<Element> {
public var elements: [Element]
public init(_ elements: [Element]) { self.elements = elements }
}
extension ProductSpaceVector : Equatable where Element : Equatable {
public static func == (lhs: ProductSpaceVector, rhs: ProductSpaceVector) -> Bool {
return lhs.elements == rhs.elements
}
}
public struct ProductSpaceVector<Element> {
public var elements: [Element]
public init(_ elements: [Element]) { self.elements = elements }
}
extension ProductSpaceVector : Equatable where Element : Equatable {
public static func == (lhs: ProductSpaceVector, rhs: ProductSpaceVector) -> Bool {
return lhs.elements == rhs.elements
}
}
Incorrect reconstructed type for $sxq_Iegnr_D
Original type:
(sil_function_type type=@differentiable @callee_guaranteed (@in_guaranteed τ_0_0) -> @out τ_0_1)
Reconstructed type:
(sil_function_type type=@callee_guaranteed (@in_guaranteed τ_0_0) -> @out τ_0_1)
Stack dump:
0. Program arguments: /usr/local/google/home/marcrasi/swift-base-merge/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/bin/swift -frontend -c -filelist /tmp/sources-716834 -supplementary-output-file-map /tmp/supplementaryOutputs-c055d6 -disable-objc-attr-requires-foundation-module -target x86_64-unknown-linux-gnu -disable-objc-interop -sdk / -I /usr/local/google/home/marcrasi/swift-base-merge/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/./lib/swift/linux/x86_64 -warn-swift3-objc-inference-complete -warn-implicit-overrides -enable-library-evolution -g -module-cache-path /usr/local/google/home/marcrasi/swift-base-merge/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/./module-cache -module-link-name swiftCore -nostdimport -parse-st
struct MyTensor<T: Equatable & AdditiveArithmetic>: Equatable & AdditiveArithmetic {
var value: T
}
extension MyTensor : Differentiable where T : AdditiveArithmetic & Differentiable {
typealias TangentVector = MyTensor
typealias CotangentVector = MyTensor
typealias AllDifferentiableVariables = MyTensor
func tangentVector(from cotangentVector: CotangentVector) -> TangentVector {
return cotangentVector