Skip to content

Commit 4a24d1d

Browse files
committed
Update README; rename io.kjaer.compiletime package to fix error importing from sbt console
1 parent a50a2e3 commit 4a24d1d

23 files changed

+41
-29
lines changed

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ First we create an "image" tensor composed entirely of pixel value [42](https://
2424
```scala
2525
import java.nio.file.{Files, Paths}
2626
import org.emergentorder.onnx.Tensors._
27+
import org.emergentorder.onnx.Tensors.Tensor._
2728
import org.emergentorder.onnx.backends._
2829
import org.emergentorder.compiletime._
29-
import io.kjaer.compiletime._
30+
import org.emergentorder.io.kjaer.compiletime._
3031

3132
val squeezenetBytes = Files.readAllBytes(Paths.get("squeezenet1.0-12.onnx"))
3233
val squeezenet = new ORTModelBackend(squeezenetBytes)
@@ -57,16 +58,18 @@ val out = squeezenet.fullModel[Float,
5758
// val out:
5859
// Tensor[Float,("ImageNetClassification",
5960
// "Batch" ##: "Class" ##: TSNil,
60-
// 1 #: 1000 #: SNil)] = (Array(0.8230729,
61+
// 1 #: 1000 #: 1 #: 1 SNil)] = IO(...)
6162
// ...
6263

6364
//The output shape
64-
out.shape
65-
// val res0: Array[Int] = Array(1, 1000)
65+
out.shape.unsafeRunSync()
66+
// val res0: Array[Int] = Array(1, 1000, 1, 1)
6667

68+
val data = out.data.unsafeRunSync()
69+
// val data: Array[Float] = Array(1.786191E-4, ...)
6770

6871
//The highest scoring and thus highest probability (predicted) class
69-
out.data.indices.maxBy(out.data)
72+
data.indices.maxBy(data)
7073
// val res1: Int = 549
7174
```
7275

backends/.js/src/main/scala/ORTOperatorBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import org.emergentorder.onnx.Tensors._
2828
import org.emergentorder.onnx.Tensors.Tensor._
2929
import org.emergentorder.compiletime._
3030
import onnxruntimeCommon.inferenceSessionMod.InferenceSession
31-
import io.kjaer.compiletime._
31+
import org.emergentorder.io.kjaer.compiletime._
3232

3333
//TODO: fix redundant computation due to cats-effect on the JS side
3434
//Still happening, though partially fixed by changes in core

backends/.js/src/main/scala/ORTWebModelBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.emergentorder.onnx._
1515
import org.emergentorder.onnx.Tensors._
1616
import org.emergentorder.onnx.Tensors.Tensor._
1717
import org.emergentorder.compiletime._
18-
import io.kjaer.compiletime._
18+
import org.emergentorder.io.kjaer.compiletime._
1919

2020
import ORTTensorUtils._
2121

backends/.js/src/test/scala/SqueezeNetTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.emergentorder.onnx.Tensors._
66
import org.emergentorder.onnx.Tensors.Tensor._
77
import org.emergentorder.onnx.backends._
88
import org.emergentorder.compiletime._
9-
import io.kjaer.compiletime._
9+
import org.emergentorder.io.kjaer.compiletime._
1010
import org.emergentorder.onnx.onnxruntimeWeb.mod.{InferenceSession => OrtSession}
1111
import cats.effect.IO
1212

backends/.jvm/src/main/scala/NCF.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import spire.math.Numeric
1313
import scala.language.higherKinds
1414
import scala.io.Source
1515
import org.emergentorder.compiletime.*
16-
import io.kjaer.compiletime.*
16+
import org.emergentorder.io.kjaer.compiletime.*
1717
import cats.effect.IO
1818

1919
//TODO: Add changes to generator; Generate both full model and layerwise programs each time

backends/.jvm/src/main/scala/ORTModelBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import org.emergentorder.onnx.*
1616
import org.emergentorder.onnx.Tensors.*
1717
import org.emergentorder.onnx.Tensors.Tensor.*
1818
import org.emergentorder.compiletime.*
19-
import io.kjaer.compiletime.*
19+
import org.emergentorder.io.kjaer.compiletime.*
2020

2121
import ORTTensorUtils.*
2222

backends/.jvm/src/main/scala/ORTOperatorBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import org.emergentorder.onnx.*
1111
import org.emergentorder.onnx.Tensors.*
1212
import org.emergentorder.onnx.Tensors.Tensor.*
1313
import org.emergentorder.compiletime.*
14-
import io.kjaer.compiletime.*
14+
import org.emergentorder.io.kjaer.compiletime.*
1515
import onnx.onnx.*
1616

1717
import cats.implicits.*

backends/.jvm/src/test/scala/BertTokenizerTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import org.emergentorder.onnx.Tensors.*
99
import org.emergentorder.onnx.Tensors.Tensor.*
1010
import org.emergentorder.onnx.backends.*
1111
import org.emergentorder.compiletime.*
12-
import io.kjaer.compiletime.*
12+
import org.emergentorder.io.kjaer.compiletime.*
1313

1414
import org.scalatest.flatspec.AnyFlatSpec
1515
import org.scalatest.freespec.AsyncFreeSpec

backends/.jvm/src/test/scala/SqueezeNetTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import org.emergentorder.onnx.Tensors.*
99
import org.emergentorder.onnx.Tensors.Tensor.*
1010
import org.emergentorder.onnx.backends.*
1111
import org.emergentorder.compiletime.*
12-
import io.kjaer.compiletime.*
12+
import org.emergentorder.io.kjaer.compiletime.*
1313

1414
import org.scalatest.flatspec.AnyFlatSpec
1515
import org.scalatest.freespec.AsyncFreeSpec
@@ -23,7 +23,7 @@ class ONNXScalaSpec extends AsyncFreeSpec with AsyncIOSpec with Matchers {
2323
) #> new File("squeezenet1.0-12.onnx") !!
2424

2525
"SqueezeNet ONNX-Scala model should predict dummy image class" in {
26-
val squeezenetBytes = Files.readAllBytes(Paths.get("squeezenet1.0-12.onnx"))
26+
val squeezenetBytes = Files.readAllBytes(Paths.get("squeezenet1.0-12.onnx")) //.quant.onnx"))
2727
val squeezenet = new ORTModelBackend(squeezenetBytes)
2828
val data = Array.fill(1 * 3 * 224 * 224) { 42f }
2929
// In NCHW tensor image format

backends/.native/src/main/scala/ORTNativeOperatorBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.emergentorder.onnx._
1010
import org.emergentorder.onnx.Tensors._
1111
import org.emergentorder.onnx.Tensors.Tensor._
1212
import org.emergentorder.compiletime._
13-
import io.kjaer.compiletime._
13+
import org.emergentorder.io.kjaer.compiletime._
1414

1515
trait ORTNativeOperatorBackend {
1616

build.sbt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,14 @@ lazy val backends = (crossProject(JSPlatform, JVMPlatform, NativePlatform)
8989
startWebpackDevServer / version := "4.11.1",
9090
scalaJSUseMainModuleInitializer := true, // , //Testing
9191
Compile / npmDependencies += "onnxruntime-web" -> "1.13.1",
92+
//ORT web and node are interchangeable, given minor package name changes, and node offers a significant speed-up (at the cost of working on the web)
93+
// Compile / npmDependencies += "onnxruntime-node" -> "1.13.1",
9294
Compile / npmDependencies += "onnxruntime-common" -> "1.13.1",
9395
Compile / npmDependencies += "typescript" -> "4.8.4",
9496
libraryDependencies += "org.typelevel" %%% "cats-effect-testing-scalatest" % "1.5.0" % Test,
9597
stOutputPackage := "org.emergentorder.onnx",
9698
stShortModuleNames := true,
99+
Compile /packageDoc / publishArtifact := false, //This is inordinately slow, only publish doc on release
97100
scalaJSStage := FullOptStage,
98101
scalaJSLinkerConfig ~= (_.withESFeatures(
99102
_.withESVersion(org.scalajs.linker.interface.ESVersion.ES2021)

common/src/main/scala/TensorShapeDenotation.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ package org.emergentorder.compiletime
44

55
import scala.compiletime.ops.int.{S, +, <, <=, *}
66
import scala.compiletime.ops.boolean.&&
7-
import io.kjaer.compiletime.Index
8-
import io.kjaer.compiletime.Indices
9-
import io.kjaer.compiletime.INil
7+
import org.emergentorder.io.kjaer.compiletime.Index
8+
import org.emergentorder.io.kjaer.compiletime.Indices
9+
import org.emergentorder.io.kjaer.compiletime.INil
1010

1111
type DimensionDenotation = String & Singleton
1212

common/src/main/scala/io/kjaer/compiletime/Indices.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Author: Maxime Kjaer, taken from tf-dotty
2-
package io.kjaer.compiletime
2+
package org.emergentorder.io.kjaer.compiletime
33

44
import scala.compiletime.ops.string.+
55
import scala.compiletime.ops.int
@@ -8,7 +8,7 @@ type Index = Int & Singleton
88

99
sealed trait Indices {
1010
def :::[H <: Index, This >: this.type <: Indices](head: H): H ::: This =
11-
io.kjaer.compiletime.:::(head, this)
11+
org.emergentorder.io.kjaer.compiletime.:::(head, this)
1212

1313
def indices: Seq[Int] = this match {
1414
case INil => Nil

common/src/main/scala/io/kjaer/compiletime/IndicesOf.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Author: Maxime Kjaer, taken from tf-dotty
2-
package io.kjaer.compiletime
2+
package org.emergentorder.io.kjaer.compiletime
33

44
/** Type-class used to materialize the singleton type of an [[Indices]].
55
*

common/src/main/scala/io/kjaer/compiletime/Shape.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Author: Maxime Kjaer, taken from tf-dotty
2-
package io.kjaer.compiletime
2+
package org.emergentorder.io.kjaer.compiletime
33

44
import scala.compiletime.ops.int.{S, +, <, <=, *}
55
import scala.compiletime.ops.boolean.&&
@@ -11,7 +11,7 @@ sealed trait Shape extends Product with Serializable {
1111

1212
/** Prepend the head to this */
1313
def #:[H <: Dimension, This >: this.type <: Shape](head: H): H #: This =
14-
io.kjaer.compiletime.#:(head, this)
14+
org.emergentorder.io.kjaer.compiletime.#:(head, this)
1515

1616
/** Concat with another shape * */
1717
def ++(that: Shape): this.type `Concat` that.type = Shape.concat(this, that)

common/src/main/scala/io/kjaer/compiletime/ShapeOf.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Author: Maxime Kjaer, taken from tf-dotty
2-
package io.kjaer.compiletime
2+
package org.emergentorder.io.kjaer.compiletime
33

44
/** Type-class used to materialize the singleton type of a [[Shape]].
55
*

common/src/main/scala/io/kjaer/compiletime/dependent.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//Author: Maxime Kjaer, taken from tf-dotty
2-
package io.kjaer.compiletime
2+
package org.emergentorder.io.kjaer.compiletime
33

44
import scala.compiletime.ops.int.*
55

core/src/main/scala/ONNX.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,6 +1500,9 @@ package object onnx {
15001500
}
15011501
}
15021502

1503+
//TODO: move "axes" from attributes to inputs on the rest of the Reduce ops,
1504+
//as done below with ReduceSum (when updating to opset 18)
1505+
//
15031506
// TODO: new attr : noop_with_empty_axes
15041507
trait ReduceSumV13 extends Operator {
15051508
def ReduceSumV13[

core/src/main/scala/ONNXBytesDataSource.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import spire.math.Numeric
44
import org.emergentorder.onnx.*
55
import org.emergentorder.onnx.Tensors.*
66
import org.emergentorder.compiletime.*
7-
import io.kjaer.compiletime.*
7+
import org.emergentorder.io.kjaer.compiletime.*
88

99
class ONNXBytesDataSource(onnxBytes: Array[Byte]) extends DataSource {
1010

core/src/main/scala/OpToONNXBytesConverter.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import onnx.onnx.TensorProto.DataType.*
1515

1616
import cats.effect.IO
1717
import cats.implicits.*
18-
import io.kjaer.compiletime.Shape
18+
import org.emergentorder.io.kjaer.compiletime.Shape
1919
import org.emergentorder.compiletime.*
2020
import org.emergentorder.onnx.Tensors.*
2121
import org.emergentorder.onnx.Tensors.Tensor.*

core/src/main/scala/Tensors.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import spire.math.UInt
66
import spire.math.ULong
77
import spire.math.Complex
88
import spire.math.Numeric
9-
import io.kjaer.compiletime.*
10-
import io.kjaer.compiletime.Shape.*
9+
import org.emergentorder.io.kjaer.compiletime.*
10+
import org.emergentorder.io.kjaer.compiletime.Shape.*
1111
import scala.compiletime.ops.int.*
1212

1313
import cats.effect.IO

get_models.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
curl -O "https://media.githubusercontent.com/media/onnx/models/main/vision/classification/squeezenet/model/squeezenet1.0-12.onnx"
22
curl -o absnet.onnx "https://raw.githubusercontent.com/onnx/onnx/master/onnx/backend/test/data/node/test_abs/model.onnx"
3+
4+
#TODO: add bert tokenizer here

project/plugins.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
addDependencyTreePlugin
12
addSbtPlugin("ch.epfl.scala" % "sbt-version-policy" % "2.1.0")
23
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.2.0")
34
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.2.0")

0 commit comments

Comments
 (0)