Skip to content
This repository was archived by the owner on Jul 1, 2023. It is now read-only.
This repository was archived by the owner on Jul 1, 2023. It is now read-only.

Colab crash using .differentiableReduce() on [Layer] appended with += #1032

@mikowals

Description

@mikowals

This code crashes without output in Colab (s4tf v0.10) though it compiles and runs locally on macOS:

import TensorFlow

public struct Network: Layer {
    var blocks: [Conv2D<Float>] = []

    public init() {
        self.blocks += [Conv2D(filterShape: (3, 3, 16, 16))]
    }

    @differentiable
    public func callAsFunction(_ input: Tensor<Float>) -> Tensor<Float> {
        blocks.differentiableReduce(input) { $1($0) }
    }
}

If I don't append with += (just assign blocks to an array or use blocks.append) there is no crash. Also if I just call blocks[0](input) in callAsFunction there is no crash.

The Colab runtime log message before the restarting is a warning:

python3: /swift-base/swift/lib/SILOptimizer/Analysis/Analysis.cpp:33: static void swift::SILAnalysis::verifyFunction(swift::SILFunction *): Assertion `F->isDefinition() && "Can't analyze external functions"' failed.

I came to this reduced error from a larger block of code that worked in v0.9 but is now crashing. So appending with += and calling differentiableReduce was not crashing in that version.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions