2025-06-27 07:37.10: New job: test ahrefs/ocannl https://github.com/ahrefs/ocannl.git#refs/heads/master (2611a1bf1be375ec0eaec7d13d4bccbb00ebd240) (linux-ppc64:debian-12-5.3_ppc64_opam-2.3) Base: ocaml/opam:debian-12-ocaml-5.3@sha256:ee1370892e35a7707afd41501039a3c90e173dd9ce9096b12b0e38a805d568f8 Opam project build To reproduce locally: git clone --recursive "https://github.com/ahrefs/ocannl.git" -b "master" && cd "ocannl" && git reset --hard 2611a1bf cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-12-ocaml-5.3@sha256:ee1370892e35a7707afd41501039a3c90e173dd9ce9096b12b0e38a805d568f8 # debian-12-5.3_ppc64_opam-2.3 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam RUN opam init --reinit -ni RUN uname -rs && opam exec -- ocaml -version && opam --version WORKDIR /src RUN sudo chown opam /src RUN cd ~/opam-repository && (git cat-file -e fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 || git fetch origin master) && git reset -q --hard fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 && git log --no-decorate -n1 --oneline && opam update -u COPY --chown=1000:1000 neural_nets_lib.opam arrayjit.opam ./ RUN opam pin add -yn neural_nets_lib.dev './' && \ opam pin add -yn arrayjit.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.3 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 camlzip.1.13 cmdliner.1.3.0 conf-libcurl.2 conf-libffi.2.0.0 conf-pkg-config.4 conf-zlib.1 cppo.1.8.0 csexp.1.5.2 csv.2.4 ctypes.0.23.0 ctypes-foreign.0.23.0 curl.0.10.0 dune.3.19.1 dune-configurator.3.19.1 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.6 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.1.0 ppx_enumerate.v0.17.0 ppx_expect.v0.17.3 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.2 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.1 ppx_minidebug.2.3.0 ppx_optcomp.v0.17.1 ppx_sexp_conv.v0.17.1 ppx_string.v0.17.0 ppx_variants_conv.v0.17.1 ppxlib.0.36.0 ppxlib_jane.v0.17.4 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS RUN opam install $DEPS COPY --chown=1000:1000 . /src RUN opam exec -- dune build @install @check @runtest && rm -rf _build END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2025-06-27 07:37.10: Using cache hint "ahrefs/ocannl-ocaml/opam:debian-12-ocaml-5.3@sha256:ee1370892e35a7707afd41501039a3c90e173dd9ce9096b12b0e38a805d568f8-debian-12-5.3_ppc64_opam-2.3-82912e70cd030e6e6af979ac4425a6a2" 2025-06-27 07:37.10: Using OBuilder spec: ((from ocaml/opam:debian-12-ocaml-5.3@sha256:ee1370892e35a7707afd41501039a3c90e173dd9ce9096b12b0e38a805d568f8) (comment debian-12-5.3_ppc64_opam-2.3) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam")) (run (shell "opam init --reinit -ni")) (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) (workdir /src) (run (shell "sudo chown opam /src")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 || git fetch origin master) && git reset -q --hard fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 && git log --no-decorate -n1 --oneline && opam update -u")) (copy (src neural_nets_lib.opam arrayjit.opam) (dst ./)) (run (network host) (shell "opam pin add -yn neural_nets_lib.dev './' && \ \nopam pin add -yn arrayjit.dev './'")) (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.3 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 camlzip.1.13 cmdliner.1.3.0 conf-libcurl.2 conf-libffi.2.0.0 conf-pkg-config.4 conf-zlib.1 cppo.1.8.0 csexp.1.5.2 csv.2.4 ctypes.0.23.0 ctypes-foreign.0.23.0 curl.0.10.0 dune.3.19.1 dune-configurator.3.19.1 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.6 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.1.0 ppx_enumerate.v0.17.0 ppx_expect.v0.17.3 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.2 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.1 ppx_minidebug.2.3.0 ppx_optcomp.v0.17.1 ppx_sexp_conv.v0.17.1 ppx_string.v0.17.0 ppx_variants_conv.v0.17.1 ppxlib.0.36.0 ppxlib_jane.v0.17.4 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) (copy (src .) (dst /src)) (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) ) 2025-06-27 07:37.10: Waiting for resource in pool OCluster 2025-06-27 07:37.10: Waiting for worker… 2025-06-27 07:37.10: Got resource from pool OCluster Building on orithia.caelum.ci.dev HEAD is now at 874fa318 Refactoring progress: implement code expansion for the new fetch ops Constant_fill and Range_over_offsets HEAD is now at 2611a1bf Broken: Constant_fill via unrolling, fix Tensor.params field typing, final round of refactoring / plumbing (mostly by Claude Sonnet) It's broken because most of the new functionality is not implemented yet. Also, in all places, neither parameter optimization nor input optimization done properly! (from ocaml/opam:debian-12-ocaml-5.3@sha256:ee1370892e35a7707afd41501039a3c90e173dd9ce9096b12b0e38a805d568f8) 2025-06-27 07:37.11 ---> using "d2f18e339fc62b9487ec937ac3577309d7eb0a63dee3b97d34f0497b3005480e" from cache /: (comment debian-12-5.3_ppc64_opam-2.3) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam")) 2025-06-27 07:37.11 ---> using "e6b136681c35276cbef6d851cd2eb0b40e774f7ba585d83c9c254f621efae77f" from cache /src: (run (shell "opam init --reinit -ni")) Configuring from /home/opam/.opamrc and then from built-in defaults. Checking for available remotes: rsync and local, git. - you won't be able to use mercurial repositories unless you install the hg command on your system. - you won't be able to use darcs repositories unless you install the darcs command on your system. This development version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted. You may want to back it up before going further. Continue? [y/n] y Format upgrade done. <><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised 2025-06-27 07:37.11 ---> using "b9ebd07ba793e5cd7420df0a641bc46cc71fe76c38ff48e146dbbf954ba22e36" from cache /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 6.8.0-60-generic The OCaml toplevel, version 5.3.0 2.3.0 2025-06-27 07:37.11 ---> using "97db4f2a7237e5b447638da04bf25fbec5db867405f5cfea6eed36787b7afbab" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2025-06-27 07:37.11 ---> using "217228fd459dffef0016164a6fa8e4db6ca9da8012f8f36b9d10355e7658d75c" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 || git fetch origin master) && git reset -q --hard fd4f3c09ecb10da22cdd19f6a207fd314423f8d0 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD bc726805e3..fd4f3c09ec master -> origin/master fd4f3c09ec Merge pull request #28088 from dkalinichenko-js/opam-publish-ppxlib_jane.v0.17.4 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2025-06-27 07:37.11 ---> using "79d6404ada4a16d7c61689fe987bef7f7b8a90fcd9f545605a56927329b4a287" from cache /src: (copy (src neural_nets_lib.opam arrayjit.opam) (dst ./)) 2025-06-27 07:37.11 ---> using "b01798f0c2e035bf9a1bf61ffbe0315c91d87d35f42fd3714ffc6fb43531aeed" from cache /src: (run (network host) (shell "opam pin add -yn neural_nets_lib.dev './' && \ \nopam pin add -yn arrayjit.dev './'")) [neural_nets_lib.dev] synchronised (file:///src) neural_nets_lib is now pinned to file:///src (version dev) [arrayjit.dev] synchronised (file:///src) arrayjit is now pinned to file:///src (version dev) 2025-06-27 07:37.11 ---> using "95977b6301e90b72016d609402e8119c612a513b17e5426478be1d29b5998b12" from cache /src: (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) 2025-06-27 07:37.11 ---> using "cceb31e7105e55a7b560fdfadae224b355f3d9ec0ef6fbff8948cc838aa6987d" from cache /src: (env DEPS "angstrom.0.16.1 astring.0.8.5 backoff.0.1.1 base.v0.17.3 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigarray-compat.1.1.0 bigstringaf.0.10.0 camlp-streams.5.0.1 camlzip.1.13 cmdliner.1.3.0 conf-libcurl.2 conf-libffi.2.0.0 conf-pkg-config.4 conf-zlib.1 cppo.1.8.0 csexp.1.5.2 csv.2.4 ctypes.0.23.0 ctypes-foreign.0.23.0 curl.0.10.0 dune.3.19.1 dune-configurator.3.19.1 fieldslib.v0.17.0 fmt.0.10.0 integers.0.7.0 jane-street-headers.v0.17.0 jst-config.v0.17.0 logs.0.8.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 num.1.6 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-compiler-libs.v0.17.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 parsexp.v0.17.0 pprint.20230830 ppx_assert.v0.17.0 ppx_base.v0.17.0 ppx_cold.v0.17.0 ppx_compare.v0.17.0 ppx_derivers.1.2.1 ppx_deriving.6.1.0 ppx_enumerate.v0.17.0 ppx_expect.v0.17.3 ppx_fields_conv.v0.17.0 ppx_globalize.v0.17.2 ppx_hash.v0.17.0 ppx_here.v0.17.0 ppx_inline_test.v0.17.1 ppx_minidebug.2.3.0 ppx_optcomp.v0.17.1 ppx_sexp_conv.v0.17.1 ppx_string.v0.17.0 ppx_variants_conv.v0.17.1 ppxlib.0.36.0 ppxlib_jane.v0.17.4 printbox.0.12 printbox-ext-plot.0.12 printbox-html.0.12 printbox-md.0.12 printbox-text.0.12 ptime.1.2.0 re.1.12.0 result.1.5 saturn_lockfree.0.5.0 seq.base sexplib.v0.17.0 sexplib0.v0.17.0 stdio.v0.17.0 stdlib-shims.0.3.0 thread-local-storage.0.2 time_now.v0.17.0 topkg.1.0.8 tyxml.4.6.0 uucp.16.0.0 uutf.1.0.4 variantslib.v0.17.0") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y neural_nets_lib.dev arrayjit.dev $DEPS")) + /usr/bin/sudo "apt-get" "update" - Hit:1 http://deb.debian.org/debian bookworm InRelease - Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB] - Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB] - Get:4 http://deb.debian.org/debian bookworm-updates/main ppc64el Packages.diff/Index [17.3 kB] - Get:5 http://deb.debian.org/debian bookworm-updates/main ppc64el Packages T-2025-06-13-1410.14-F-2025-06-13-1410.14.pdiff [434 B] - Get:5 http://deb.debian.org/debian bookworm-updates/main ppc64el Packages T-2025-06-13-1410.14-F-2025-06-13-1410.14.pdiff [434 B] - Get:6 http://deb.debian.org/debian-security bookworm-security/main ppc64el Packages [257 kB] - Fetched 378 kB in 0s (1008 kB/s) - Reading package lists... - <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [arrayjit.dev] synchronised (file:///src) [neural_nets_lib.dev] synchronised (file:///src) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.3.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0). [NOTE] Package ocaml is already installed (current version is 5.3.0). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following system packages will first need to be installed: libcurl4-gnutls-dev libffi-dev pkg-config zlib1g-dev <><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><> + /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libcurl4-gnutls-dev" "libffi-dev" "pkg-config" "zlib1g-dev" - debconf: delaying package configuration, since apt-utils is not installed - Selecting previously unselected package libcurl4-gnutls-dev:ppc64el. - (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 18718 files and directories currently installed.) - Preparing to unpack .../0-libcurl4-gnutls-dev_7.88.1-10+deb12u12_ppc64el.deb ... - Unpacking libcurl4-gnutls-dev:ppc64el (7.88.1-10+deb12u12) ... - Selecting previously unselected package libffi-dev:ppc64el. - Preparing to unpack .../1-libffi-dev_3.4.4-1_ppc64el.deb ... - Unpacking libffi-dev:ppc64el (3.4.4-1) ... - Selecting previously unselected package libpkgconf3:ppc64el. - Preparing to unpack .../2-libpkgconf3_1.8.1-1_ppc64el.deb ... - Unpacking libpkgconf3:ppc64el (1.8.1-1) ... - Selecting previously unselected package pkgconf-bin. - Preparing to unpack .../3-pkgconf-bin_1.8.1-1_ppc64el.deb ... - Unpacking pkgconf-bin (1.8.1-1) ... - Selecting previously unselected package pkgconf:ppc64el. - Preparing to unpack .../4-pkgconf_1.8.1-1_ppc64el.deb ... - Unpacking pkgconf:ppc64el (1.8.1-1) ... - Selecting previously unselected package pkg-config:ppc64el. - Preparing to unpack .../5-pkg-config_1.8.1-1_ppc64el.deb ... - Unpacking pkg-config:ppc64el (1.8.1-1) ... - Selecting previously unselected package zlib1g-dev:ppc64el. - Preparing to unpack .../6-zlib1g-dev_1%3a1.2.13.dfsg-1_ppc64el.deb ... - Unpacking zlib1g-dev:ppc64el (1:1.2.13.dfsg-1) ... - Setting up libcurl4-gnutls-dev:ppc64el (7.88.1-10+deb12u12) ... - Setting up libffi-dev:ppc64el (3.4.4-1) ... - Setting up libpkgconf3:ppc64el (1.8.1-1) ... - Setting up pkgconf-bin (1.8.1-1) ... - Setting up zlib1g-dev:ppc64el (1:1.2.13.dfsg-1) ... - Setting up pkgconf:ppc64el (1.8.1-1) ... - Setting up pkg-config:ppc64el (1.8.1-1) ... - Processing triggers for libc-bin (2.36-9+deb12u10) ... 2025-06-27 07:37.11 ---> using "39c21e1f9fa7f3b792895610b22ce32e88e729727d44ea8b30a606cd90cda7be" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.3.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0). [NOTE] Package ocaml is already installed (current version is 5.3.0). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following actions will be performed: === install 81 packages - install angstrom 0.16.1 - install astring 0.8.5 - install backoff 0.1.1 - install base v0.17.3 - install base-bytes base - install bigarray-compat 1.1.0 - install bigstringaf 0.10.0 - install camlp-streams 5.0.1 - install camlzip 1.13 - install cmdliner 1.3.0 - install conf-libcurl 2 - install conf-libffi 2.0.0 - install conf-pkg-config 4 - install conf-zlib 1 - install cppo 1.8.0 - install csexp 1.5.2 - install csv 2.4 - install ctypes 0.23.0 - install ctypes-foreign 0.23.0 - install curl 0.10.0 - install dune 3.19.1 - install dune-configurator 3.19.1 - install fieldslib v0.17.0 - install fmt 0.10.0 - install integers 0.7.0 - install jane-street-headers v0.17.0 - install jst-config v0.17.0 - install logs 0.8.0 - install mdx 2.5.0 - install mtime 2.1.0 - install multicore-magic 2.3.1 - install num 1.6 - install ocaml-compiler-libs v0.17.0 - install ocaml-syntax-shims 1.0.0 - install ocaml-version 4.0.1 - install ocaml_intrinsics_kernel v0.17.1 - install ocamlbuild 0.16.1 - install ocamlfind 1.9.8 - install parsexp v0.17.0 - install pprint 20230830 - install ppx_assert v0.17.0 - install ppx_base v0.17.0 - install ppx_cold v0.17.0 - install ppx_compare v0.17.0 - install ppx_derivers 1.2.1 - install ppx_deriving 6.1.0 - install ppx_enumerate v0.17.0 - install ppx_expect v0.17.3 - install ppx_fields_conv v0.17.0 - install ppx_globalize v0.17.2 - install ppx_hash v0.17.0 - install ppx_here v0.17.0 - install ppx_inline_test v0.17.1 - install ppx_minidebug 2.3.0 - install ppx_optcomp v0.17.1 - install ppx_sexp_conv v0.17.1 - install ppx_string v0.17.0 - install ppx_variants_conv v0.17.1 - install ppxlib 0.36.0 - install ppxlib_jane v0.17.4 - install printbox 0.12 - install printbox-ext-plot 0.12 - install printbox-html 0.12 - install printbox-md 0.12 - install printbox-text 0.12 - install ptime 1.2.0 - install re 1.12.0 - install result 1.5 - install saturn_lockfree 0.5.0 - install seq base - install sexplib v0.17.0 - install sexplib0 v0.17.0 - install stdio v0.17.0 - install stdlib-shims 0.3.0 - install thread-local-storage 0.2 - install time_now v0.17.0 - install topkg 1.0.8 - install tyxml 4.6.0 - install uucp 16.0.0 - install uutf 1.0.4 - install variantslib v0.17.0 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved astring.0.8.5 (cached) -> retrieved angstrom.0.16.1 (cached) -> retrieved backoff.0.1.1 (cached) -> retrieved base.v0.17.3 (cached) -> retrieved bigarray-compat.1.1.0 (cached) -> retrieved bigstringaf.0.10.0 (cached) -> retrieved camlp-streams.5.0.1 (cached) -> retrieved camlzip.1.13 (cached) -> retrieved cmdliner.1.3.0 (cached) -> retrieved cppo.1.8.0 (cached) -> installed conf-libcurl.2 -> installed conf-pkg-config.4 -> retrieved csexp.1.5.2 (cached) -> retrieved csv.2.4 (cached) -> retrieved ctypes.0.23.0, ctypes-foreign.0.23.0 (cached) -> installed conf-libffi.2.0.0 -> installed conf-zlib.1 -> retrieved curl.0.10.0 (cached) -> retrieved fieldslib.v0.17.0 (cached) -> retrieved fmt.0.10.0 (cached) -> retrieved integers.0.7.0 (cached) -> retrieved jane-street-headers.v0.17.0 (cached) -> retrieved jst-config.v0.17.0 (cached) -> retrieved logs.0.8.0 (cached) -> retrieved mtime.2.1.0 (cached) -> retrieved multicore-magic.2.3.1 (cached) -> retrieved mdx.2.5.0 (cached) -> retrieved num.1.6 (cached) -> retrieved ocaml-compiler-libs.v0.17.0 (cached) -> retrieved ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocaml-version.4.0.1 (cached) -> retrieved ocaml_intrinsics_kernel.v0.17.1 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved dune.3.19.1, dune-configurator.3.19.1 (cached) -> retrieved parsexp.v0.17.0 (cached) -> retrieved pprint.20230830 (cached) -> retrieved ppx_assert.v0.17.0 (cached) -> retrieved ppx_base.v0.17.0 (cached) -> retrieved ppx_cold.v0.17.0 (cached) -> retrieved ppx_compare.v0.17.0 (cached) -> retrieved ppx_derivers.1.2.1 (cached) -> retrieved ppx_enumerate.v0.17.0 (cached) -> retrieved ppx_deriving.6.1.0 (cached) -> installed cmdliner.1.3.0 -> installed num.1.6 -> retrieved ppx_expect.v0.17.3 (cached) -> retrieved ppx_fields_conv.v0.17.0 (cached) -> retrieved ppx_globalize.v0.17.2 (cached) -> retrieved ppx_hash.v0.17.0 (cached) -> retrieved ppx_here.v0.17.0 (cached) -> retrieved ppx_inline_test.v0.17.1 (cached) -> retrieved ppx_optcomp.v0.17.1 (cached) -> retrieved ppx_sexp_conv.v0.17.1 (cached) -> retrieved ppx_string.v0.17.0 (cached) -> retrieved ppx_variants_conv.v0.17.1 (cached) -> retrieved ppxlib_jane.v0.17.4 (cached) -> retrieved ppx_minidebug.2.3.0 (cached) -> retrieved ptime.1.2.0 (cached) -> retrieved ppxlib.0.36.0 (cached) -> retrieved re.1.12.0 (cached) -> retrieved result.1.5 (cached) -> retrieved seq.base (cached) -> installed seq.base -> retrieved sexplib.v0.17.0 (cached) -> retrieved saturn_lockfree.0.5.0 (cached) -> retrieved sexplib0.v0.17.0 (cached) -> retrieved stdio.v0.17.0 (cached) -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved printbox.0.12, printbox-ext-plot.0.12, printbox-html.0.12, printbox-md.0.12, printbox-text.0.12 (cached) -> retrieved thread-local-storage.0.2 (cached) -> retrieved time_now.v0.17.0 (cached) -> retrieved topkg.1.0.8 (cached) -> retrieved tyxml.4.6.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved variantslib.v0.17.0 (cached) -> retrieved uucp.16.0.0 (cached) -> installed ocamlfind.1.9.8 -> installed base-bytes.base -> installed camlzip.1.13 -> installed ocamlbuild.0.16.1 -> installed topkg.1.0.8 -> installed mtime.2.1.0 -> installed uutf.1.0.4 -> installed fmt.0.10.0 -> installed ptime.1.2.0 -> installed astring.0.8.5 -> installed logs.0.8.0 -> installed dune.3.19.1 -> installed jane-street-headers.v0.17.0 -> installed ppx_derivers.1.2.1 -> installed csexp.1.5.2 -> installed backoff.0.1.1 -> installed bigarray-compat.1.1.0 -> installed camlp-streams.5.0.1 -> installed cppo.1.8.0 -> installed csv.2.4 -> installed multicore-magic.2.3.1 -> installed ocaml-compiler-libs.v0.17.0 -> installed ocaml-syntax-shims.1.0.0 -> installed ocaml-version.4.0.1 -> installed ocaml_intrinsics_kernel.v0.17.1 -> installed pprint.20230830 -> installed printbox.0.12 -> installed re.1.12.0 -> installed result.1.5 -> installed sexplib0.v0.17.0 -> installed stdlib-shims.0.3.0 -> installed thread-local-storage.0.2 -> installed saturn_lockfree.0.5.0 -> installed integers.0.7.0 -> installed parsexp.v0.17.0 -> installed dune-configurator.3.19.1 -> installed mdx.2.5.0 -> installed sexplib.v0.17.0 -> installed bigstringaf.0.10.0 -> installed angstrom.0.16.1 -> installed tyxml.4.6.0 -> installed printbox-html.0.12 -> installed curl.0.10.0 -> installed ctypes.0.23.0 -> installed base.v0.17.3 -> installed ctypes-foreign.0.23.0 -> installed variantslib.v0.17.0 -> installed fieldslib.v0.17.0 -> installed stdio.v0.17.0 -> installed uucp.16.0.0 -> installed printbox-text.0.12 -> installed printbox-md.0.12 -> installed printbox-ext-plot.0.12 -> installed ppxlib.0.36.0 -> installed ppx_optcomp.v0.17.1 -> installed ppxlib_jane.v0.17.4 -> installed ppx_here.v0.17.0 -> installed ppx_cold.v0.17.0 -> installed ppx_variants_conv.v0.17.1 -> installed ppx_fields_conv.v0.17.0 -> installed ppx_enumerate.v0.17.0 -> installed ppx_globalize.v0.17.2 -> installed ppx_deriving.6.1.0 -> installed ppx_compare.v0.17.0 -> installed ppx_sexp_conv.v0.17.1 -> installed ppx_hash.v0.17.0 -> installed ppx_assert.v0.17.0 -> installed ppx_base.v0.17.0 -> installed ppx_minidebug.2.3.0 -> installed jst-config.v0.17.0 -> installed ppx_string.v0.17.0 -> installed time_now.v0.17.0 -> installed ppx_inline_test.v0.17.1 -> installed ppx_expect.v0.17.3 Done. # To update the current shell environment, run: eval $(opam env) 2025-06-27 07:37.11 ---> using "da92396afdbc825fead680b780df307ecd61c52f8af5983ef1136af5c5bac1fa" from cache /src: (copy (src .) (dst /src)) 2025-06-27 07:37.15 ---> saved as "3131fc7777d6b29d3739a5ba3449e05e5a58e01c9581bfeee7f1a96b67bd266d" /src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) File "arrayjit/test/dune", line 6, characters 7-15: 6 | (pps ppx_jane))) ^^^^^^^^ Error: Library "ppx_jane" not found. -> required by _build/default/arrayjit/test/.merlin-conf/exe-test_numerical_types -> required by alias arrayjit/test/check (cd _build/default/test/config && ../../arrayjit/bin/read_config.exe --read=backend) Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/config/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file Wrote value of 'backend' to ocannl_backend.txt File "test/einsum/dune", line 13, characters 7-25: 13 | (name einsum_trivia_exec) ^^^^^^^^^^^^^^^^^^ (cd _build/default/test/einsum && ./einsum_trivia_exec.exe) > _build/default/test/einsum/einsum_trivia_exec.exe.output Fatal error: exception (lib/shape.ml.Shape_error "projection_of_solved_dims: unknown projection: 1 2" ((Shape_mismatch ((batch ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 1))))))) (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) (input ((dims ((Dim ((d 3) (label ()) (proj_id ((Proj_id 2))))))) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) (output ((dims ((Dim ((d 4) (label ()) (proj_id ((Proj_id 3))))))) (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) (debug_name r2x4x3))))) Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 Called from Dune__exe__Einsum_trivia_exec in file "test/einsum/einsum_trivia_exec.ml", line 29, characters 2-41 File "test/test_print_style.expected", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/test_print_style.expected _build/default/test/test_print_style.exe.output diff --git a/_build/default/test/test_print_style.expected b/_build/default/test/test_print_style.exe.output index e51ab37..c55c8ad 100644 --- a/_build/default/test/test_print_style.expected +++ b/_build/default/test/test_print_style.exe.output @@ -1,5 +1,5 @@ -Welcome to OCANNL! Reading configuration defaults from /Users/lukstafi/ocannl/_build/default/test/ocannl_config. +Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file Testing print_style functionality: File "test/einsum/test_conv_syntax.expected", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/einsum/test_conv_syntax.expected _build/default/test/einsum/test_conv_syntax.exe.output diff --git a/_build/default/test/einsum/test_conv_syntax.expected b/_build/default/test/einsum/test_conv_syntax.exe.output index 4bd5a1c..0580e1e 100644 --- a/_build/default/test/einsum/test_conv_syntax.expected +++ b/_build/default/test/einsum/test_conv_syntax.exe.output @@ -1,5 +1,5 @@ -Welcome to OCANNL! Reading configuration defaults from /Users/lukstafi/ocannl/_build/default/test/einsum/ocannl_config. +Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/einsum/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file Testing conv syntax parsing... (cd _build/default/test_ppx && ./test_ppx_op_expected.exe) Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test_ppx/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/default/test_ppx && ./test_ppx_op.exe) Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test_ppx/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition '' -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/76443ed823c891db390f10099979e5e2/default/test/ocannl_config.' -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Retrieving commandline, environment, or config file variable ocannl_log_level' -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition 'Found 0, in the config file' -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition einsum_trivia.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition hello_world_op.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition primitive_ops.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file File "test/einsum/dune", line 5, characters 7-25: 5 | (name moons_demo_variant) ^^^^^^^^^^^^^^^^^^ (cd _build/default/test/einsum && ./moons_demo_variant.exe) > _build/default/test/einsum/moons_demo_variant.exe.output Fatal error: exception (lib/shape.ml.Shape_error "projection_of_solved_dims: unknown projection: 2 40" ((Shape_mismatch ((batch ((dims ((Dim ((d 40) (label ()) (proj_id ((Proj_id 2))))) (Dim ((d 3) (label ()) (proj_id ((Proj_id 3))))))) (bcast Broadcastable) (id ((sh_id 1) (kind Batch))))) (input ((dims ()) (bcast Broadcastable) (id ((sh_id 1) (kind Input))))) (output ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 4))))))) (bcast Broadcastable) (id ((sh_id 1) (kind Output))))) (batch_padding ()) (input_padding ()) (output_padding ()) (id 1) (debug_name moons_classes))))) Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 Called from Dune__exe__Moons_demo_variant in file "test/einsum/moons_demo_variant.ml", line 62, characters 4-83 (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition moons_demo_parallel.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file File "test/dune", line 4, characters 7-30: 4 | (name moons_demo_parallel_run) ^^^^^^^^^^^^^^^^^^^^^^^ (cd _build/default/test && ./moons_demo_parallel_run.exe) Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file ("Set log_level to" 1) └─{orphaned from #24} Retrieving commandline, environment, or config file variable ocannl_backend Found multicore_cc, in the config file Properties of devices: (multicore_devices (device ((device_name CPU) (device_ordinal 0) (num_domains 128)))) @!Fatal error: exception (lib/shape.ml.Shape_error "projection_of_solved_dims: unknown projection: 2 1200" ((Shape_mismatch ((batch ((dims ((Dim ((d 1200) (label ()) (proj_id ((Proj_id 2))))) (Dim ((d 2) (label ()) (proj_id ((Proj_id 3))))))) (bcast Broadcastable) (id ((sh_id 14) (kind Batch))))) (input ((dims ()) (bcast Broadcastable) (id ((sh_id 14) (kind Input))))) (output ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 4))))))) (bcast Broadcastable) (id ((sh_id 14) (kind Output))))) (batch_padding ()) (input_padding ()) (output_padding ()) (id 14) (debug_name moons_classes))))) Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 Called from Ocannl__Train.example_train_loop in file "lib/train.ml", line 405, characters 20-51 Called from Dune__exe__Moons_demo_parallel_run.main in file "test/moons_demo_parallel_run.ml", lines 65-69, characters 4-8 Called from Base__Exn.protectx in file "src/exn.ml", line 79, characters 8-11 Re-raised at Base__Exn.raise_with_original_backtrace in file "src/exn.ml" (inlined), line 59, characters 2-50 Called from Base__Exn.protectx in file "src/exn.ml", line 86, characters 13-49 Called from Base__Exn.protect in file "src/exn.ml" (inlined), line 92, characters 26-49 Called from Dune__exe__Moons_demo_parallel_run in file "test/moons_demo_parallel_run.ml", line 90, characters 2-53 File "test/dune", lines 30-40, characters 0-281: 30 | (rule 31 | (alias runtest) 32 | (target 33 | (dir log_files)) 34 | (action 35 | (run 36 | %{dep:micrograd_demo_logging.exe} 37 | "--ocannl_debug_backend=text" 38 | "--ocannl_log_file_stem=micrograd_demo_logging" 39 | "--ocannl_log_main_domain_to_stdout=false" 40 | "--ocannl_debug_log_to_stream_files=true"))) (cd _build/default/test && ./micrograd_demo_logging.exe --ocannl_debug_backend=text --ocannl_log_file_stem=micrograd_demo_logging --ocannl_log_main_domain_to_stdout=false --ocannl_debug_log_to_stream_files=true) Welcome to OCANNL! Reading configuration defaults from /src/_build/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file Retrieving commandline, environment, or config file variable ocannl_backend Found multicore_cc, in the config file Retrieving commandline, environment, or config file variable ocannl_cd_ident_style Not found, using default heuristic Retrieving commandline, environment, or config file variable ocannl_ll_ident_style Not found, using default heuristic Retrieving commandline, environment, or config file variable ocannl_prefer_backend_uniformity Found true, in the config file Retrieving commandline, environment, or config file variable ocannl_debug_log_to_stream_files Found true, commandline --ocannl_debug_log_to_stream_files=true Retrieving commandline, environment, or config file variable ocannl_cc_backend_optimization_level Not found, using default 3 Retrieving commandline, environment, or config file variable ocannl_cc_backend_compiler_command Not found, using default gcc Retrieving commandline, environment, or config file variable ocannl_never_capture_stdout Not found, using default false Fatal error: exception File "src/printbox-text/PrintBox_text.ml", line 212, characters 6-12: Assertion failed Raised at PrintBox_text.Output.Make_out.to_buf_aux_ in file "src/printbox-text/PrintBox_text.ml", line 212, characters 6-50 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 19-42 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41 Called from Stdlib__Map.Make.fold in file "map.ml", line 329, characters 26-41 Called from PrintBox_text.Output.Make_out.render in file "src/printbox-text/PrintBox_text.ml", line 242, characters 14-64 Called from PrintBox_text.output in file "src/printbox-text/PrintBox_text.ml", line 851, characters 2-31 Called from Minidebug_runtime.PrintBox.output_box in file "minidebug_runtime.ml", line 1527, characters 19-59 Called from Minidebug_runtime.PrintBox.close_log_impl.close_tree in file "minidebug_runtime.ml", line 1572, characters 6-38 Called from Backends.Add_buffer_retrieval_and_syncing.sync_routine.post in file "arrayjit/lib/backends.ml", lines 163-170, characters 13-15 Called from Ir__Task.run in file "arrayjit/lib/task.ml", line 17, characters 2-14 Re-raised at Ir__Task.run in file "arrayjit/lib/task.ml", lines 15-17, characters 20-14 Called from Dune__exe__Micrograd_demo_logging.(fun) in file "test/micrograd_demo_logging.ml", line 36, characters 2-16 Called from Utils.capture_stdout_logs in file "arrayjit/lib/utils.ml", line 825, characters 10-16 Re-raised at Utils.capture_stdout_logs in file "arrayjit/lib/utils.ml", line 856, characters 8-87 Called from Dune__exe__Micrograd_demo_logging in file "test/micrograd_demo_logging.ml", lines 35-39, characters 2-58 (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition zero2hero_1of7.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file (cd _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test && .tutorials.inline-tests/inline-test-runner.exe inline-test-runner tutorials -partition micrograd_demo.ml -source-tree-root .. -diff-cmd -) Welcome to OCANNL! Reading configuration defaults from /src/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/ocannl_config. Retrieving commandline, environment, or config file variable ocannl_log_level Found 0, in the config file File "test/zero2hero_1of7.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/zero2hero_1of7.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/zero2hero_1of7.ml.corrected diff --git a/_build/default/test/zero2hero_1of7.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/zero2hero_1of7.ml.corrected index 0e9bd26..9f478bc 100644 --- a/_build/default/test/zero2hero_1of7.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/zero2hero_1of7.ml.corrected @@ -33,15 +33,15 @@ let%expect_test "Graph drawing recompile" = 6.00e+1 #16 grad_+_f_nd Virt/30 <void> - #13 - Virt/152 │#2 5. Virt/40 + #13 - Virt/40 │#2 5. Virt/40 <void> │<void> #14 grad_- Virt/30 │ <void> │ - #11 *. Virt/152 │ #4 *. Virt/152 │ + #11 *. Virt/40 │ #4 *. Virt/40 │ <void> │ <void> │ #12 grad_*. Virt/30 │ #5 grad_*. Virt/30 │ <void> │ <void> │ - #10 3. Virt/40│#7 **. Virt/152 │#3 4. Virt/40│#0 x │ + #10 3. Virt/40│#7 **. Virt/40 │#3 4. Virt/40│#0 x │ <void> │<void> │<void> │ 5.00 │ │#8 grad_**. Virt/30│ │#1 grad_x Local/30│ │<void> │ │<void> │ @@ -96,7 +96,8 @@ let%expect_test "Graph drawing recompile" = [%expect {| ┌────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.00e+2│# │ + │ 6.00e+1│ │ + │ │ │ │ │ │ │ │ │ │ │ │ @@ -109,7 +110,6 @@ let%expect_test "Graph drawing recompile" = │ │ │ │ │ │ │ │ │ - │ │ # │ │ │ │ │ │ │ │ │ │ @@ -119,23 +119,23 @@ let%expect_test "Graph drawing recompile" = │x │ │ │) │ │ │ │ │ - │ │ # │ │ │ │ │ │ │ - │ │ #│ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ # │ │ │ │ - │ │ # │ │ │ │ │ │ │ - │ │ # │ - │ │ # │ │ │ │ - │ 4.00 │ # # │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ 6.00e+1│# # # # # # # # # #│ ├────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │-5.00 4.00│ │ │ x │ @@ -201,54 +201,57 @@ let%expect_test "Graph drawing fetch" = ] in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.00e+2 │# │ - │ │# │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ # # #│ - │ │ # # # │ - │ │ # # │ - │ │ # ## │ - │ │ ## # │ - │f │ # # │ - │( │ # # ## │ - │x │ ## # │ - │) │ # # │ - │ │ # # ### **│ - │ │ ## # * **** │ - │ │ # # ## * **** │ - │ │ ### ## * *** │ - │ │ # # # ##** ** │ - │ │ #### # ###* * │ - │ │ # #### # # ## # #### │ - │ │ # # ** * │ - │ │- - - - - - - - - - - * ** * - - - - - - - - │ - │ │ * **** │ - │ │ * **** │ - │ │ **** * │ - │ │ * **** │ - │ │ * **** │ - │ │ * **** │ - │ │ ** *** │ - │ │ * * *** │ - │ -3.40e+1│* * ** │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 4.90│ - │ │ x │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 97 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 97))))))) + (bcast Broadcastable) (id ((sh_id 10) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 10) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 98))))))) + (bcast Broadcastable) (id ((sh_id 10) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 10) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Zero2hero_1of7.(fun) in file "test/zero2hero_1of7.ml", line 185, characters 19-72 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "Simple gradients hosted" = Tensor.unsafe_reinitialize (); @@ -276,15 +279,15 @@ let%expect_test "Simple gradients hosted" = <not-in-yet> #13 grad_*._l Host&stream/41 <not-in-yet> - #8 +_d Host&stream/41 │#10 f Host&shared/39 + #8 +_d Host&stream/41 │#10 f Host&stream/41 <not-in-yet> │<not-in-yet> #9 grad_+_d Host&stream/41 │#11 grad_f Host&stream/41 <not-in-yet> │<not-in-yet> - #4 *._e Host&stream/41 │#6 c Host&shared/39 │ + #4 *._e Host&stream/41 │#6 c Host&stream/41 │ <not-in-yet> │<not-in-yet> │ #5 grad_*._e Host&stream/41 │#7 grad_c Host&stream/41│ <not-in-yet> │<not-in-yet> │ - #0 a Host&shared/39 │#2 b Host&shared/39 │ │ + #0 a Host&stream/41 │#2 b Host&stream/41 │ │ <not-in-yet> │<not-in-yet> │ │ #1 grad_a Host&stream/41│#3 grad_b Host&stream/41│ │ <not-in-yet> │<not-in-yet> │ │ @@ -324,15 +327,15 @@ let%expect_test "Simple gradients hosted" = #13 grad_*._l 1.00 #8 +_d │#10 f - 4.00 │ -2.40 + 4.00 │ -2.00 #9 grad_+_d │#11 grad_f -2.00 │ 4.00 #4 *._e │#6 c │ - -6.00 │ 1.02e+1 │ + -6.00 │ 1.00e+1 │ #5 grad_*._e │#7 grad_c│ -2.00 │ -2.00 │ #0 a │#2 b │ │ - 1.40 │ -2.60 │ │ + 2.00 │ -3.00 │ │ #1 grad_a│#3 grad_b│ │ 6.00 │ -4.00 │ │ |}]; @@ -344,21 +347,21 @@ let%expect_test "Simple gradients hosted" = [%expect {| #12 *._l - -1.57e+1 + -8.00 #13 grad_*._l 1.00 #8 +_d │#10 f - 6.56 │ -2.40 + 4.00 │ -2.00 #9 grad_+_d │#11 grad_f - -2.40 │ 6.56 + -2.00 │ 4.00 #4 *._e │#6 c │ - -3.64 │ 1.02e+1 │ + -6.00 │ 1.00e+1 │ #5 grad_*._e │#7 grad_c│ - -2.40 │ -2.40 │ + -2.00 │ -2.00 │ #0 a │#2 b │ │ - 1.40 │ -2.60 │ │ + 2.00 │ -3.00 │ │ #1 grad_a│#3 grad_b│ │ - 6.24 │ -3.36 │ │ + 6.00 │ -4.00 │ │ |}] let%expect_test "Simple gradients virtual" = @@ -386,15 +389,15 @@ let%expect_test "Simple gradients virtual" = <not-in-yet> #8 +_d unknown │#10 f Host-non-const/24 <not-in-yet> │<not-in-yet> - #9 grad_+_d unknown │#11 grad_f Material/28 + #9 grad_+_d unknown │#11 grad_f Non-virt/26 <not-in-yet> │<not-in-yet> #4 *._e unknown │#6 c Host-non-const/24│ <not-in-yet> │<not-in-yet> │ - #5 grad_*._e unknown │#7 grad_c Material/28 │ + #5 grad_*._e unknown │#7 grad_c Non-virt/26 │ <not-in-yet> │<not-in-yet> │ #0 a Host-non-const/24│#2 b Host-non-const/24│ │ <not-in-yet> │<not-in-yet> │ │ - #1 grad_a Material/28 │#3 grad_b Material/28 │ │ + #1 grad_a Non-virt/26 │#3 grad_b Non-virt/26 │ │ <not-in-yet> │<not-in-yet> │ │ |}]; let grad_routine = Train.to_routine (module Backend) ctx IDX.empty grad in @@ -402,22 +405,22 @@ let%expect_test "Simple gradients virtual" = Tensor.print_tree ~spy:true ~with_grad:true ~depth:9 l; [%expect {| - #12 *._l Host&stream/41 - <not-in-yet> - #13 grad_*._l Virt/40 - <not-in-yet> - #8 +_d Local/46 │#10 f Host&shared/39 - <not-in-yet> │<not-in-yet> - #9 grad_+_d Virt/40 │#11 grad_f Dev-stream/41 - <not-in-yet> │<not-in-yet> - #4 *._e Virt/152 │#6 c Host&shared/39 │ - <not-in-yet> │<not-in-yet> │ - #5 grad_*._e Virt/40 │#7 grad_c Dev-stream/41│ - <not-in-yet> │<not-in-yet> │ - #0 a Host&shared/39 │#2 b Host&shared/39 │ │ - <not-in-yet> │<not-in-yet> │ │ - #1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│ │ - <not-in-yet> │<not-in-yet> │ │ + #12 *._l Host&stream/41 + <not-in-yet> + #13 grad_*._l Virt/40 + <not-in-yet> + #8 +_d Virt/40 │#10 f Host&stream/41 + <not-in-yet> │<not-in-yet> + #9 grad_+_d Virt/40 │#11 grad_f Local/46 + <not-in-yet> │<not-in-yet> + #4 *._e Virt/40 │#6 c Host&stream/41│ + <not-in-yet> │<not-in-yet> │ + #5 grad_*._e Virt/40 │#7 grad_c Local/46 │ + <not-in-yet> │<not-in-yet> │ + #0 a Host&stream/41│#2 b Host&stream/41│ │ + <not-in-yet> │<not-in-yet> │ │ + #1 grad_a Local/46 │#3 grad_b Local/46 │ │ + <not-in-yet> │<not-in-yet> │ │ |}]; (* Do not update the params: all values and gradients will be at initial points, which are specified in the tensor in the brackets. *) @@ -425,22 +428,22 @@ let%expect_test "Simple gradients virtual" = Tensor.print_tree ~with_grad:true ~depth:9 l; [%expect {| - #12 *._l - -8.00 - #13 grad_*._l Virt/40 - <void> - #8 +_d Local/46 │#10 f - <void> │ -2.00 - #9 grad_+_d Virt/40 │#11 grad_f Dev-stream/41 - <void> │<void> - #4 *._e Virt/152 │#6 c │ - <void> │ 1.00e+1 │ - #5 grad_*._e Virt/40 │#7 grad_c Dev-stream/41│ - <void> │<void> │ - #0 a │#2 b │ │ - 2.00 │ -3.00 │ │ - #1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│ │ - <void> │<void> │ │ + #12 *._l + -8.00 + #13 grad_*._l Virt/40 + <void> + #8 +_d Virt/40 │#10 f + <void> │ -2.00 + #9 grad_+_d Virt/40 │#11 grad_f Local/46 + <void> │<void> + #4 *._e Virt/40 │#6 c │ + <void> │ 1.00e+1 │ + #5 grad_*._e Virt/40 │#7 grad_c Local/46│ + <void> │<void> │ + #0 a │#2 b │ │ + 2.00 │ -3.00 │ │ + #1 grad_a Local/46│#3 grad_b Local/46│ │ + <void> │<void> │ │ |}]; (* Only now compile the SGD update. *) let sgd_routine = Train.to_routine (module Backend) grad_routine.context IDX.empty sgd in @@ -451,22 +454,22 @@ let%expect_test "Simple gradients virtual" = Tensor.print_tree ~with_grad:true ~depth:9 l; [%expect {| - #12 *._l - -8.00 - #13 grad_*._l Virt/40 - <void> - #8 +_d Local/46 │#10 f - <void> │ -2.40 - #9 grad_+_d Virt/40 │#11 grad_f Dev-stream/41 - <void> │<void> - #4 *._e Virt/152 │#6 c │ - <void> │ 1.02e+1 │ - #5 grad_*._e Virt/40 │#7 grad_c Dev-stream/41│ - <void> │<void> │ - #0 a │#2 b │ │ - 1.40 │ -2.60 │ │ - #1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│ │ - <void> │<void> │ │ + #12 *._l + -8.00 + #13 grad_*._l Virt/40 + <void> + #8 +_d Virt/40 │#10 f + <void> │ -2.00 + #9 grad_+_d Virt/40 │#11 grad_f Local/46 + <void> │<void> + #4 *._e Virt/40 │#6 c │ + <void> │ 1.00e+1 │ + #5 grad_*._e Virt/40 │#7 grad_c Local/46│ + <void> │<void> │ + #0 a │#2 b │ │ + 2.00 │ -3.00 │ │ + #1 grad_a Local/46│#3 grad_b Local/46│ │ + <void> │<void> │ │ |}]; (* Now the params will remain as above, but both param gradients and the values and gradients of other nodes will change thanks to the forward and backward passes. *) @@ -474,22 +477,22 @@ let%expect_test "Simple gradients virtual" = Tensor.print_tree ~with_grad:true ~depth:9 l; [%expect {| - #12 *._l - -1.57e+1 - #13 grad_*._l Virt/40 - <void> - #8 +_d Local/46 │#10 f - <void> │ -2.40 - #9 grad_+_d Virt/40 │#11 grad_f Dev-stream/41 - <void> │<void> - #4 *._e Virt/152 │#6 c │ - <void> │ 1.02e+1 │ - #5 grad_*._e Virt/40 │#7 grad_c Dev-stream/41│ - <void> │<void> │ - #0 a │#2 b │ │ - 1.40 │ -2.60 │ │ - #1 grad_a Dev-stream/41│#3 grad_b Dev-stream/41│ │ - <void> │<void> │ │ + #12 *._l + -8.00 + #13 grad_*._l Virt/40 + <void> + #8 +_d Virt/40 │#10 f + <void> │ -2.00 + #9 grad_+_d Virt/40 │#11 grad_f Local/46 + <void> │<void> + #4 *._e Virt/40 │#6 c │ + <void> │ 1.00e+1 │ + #5 grad_*._e Virt/40 │#7 grad_c Local/46│ + <void> │<void> │ + #0 a │#2 b │ │ + 2.00 │ -3.00 │ │ + #1 grad_a Local/46│#3 grad_b Local/46│ │ + <void> │<void> │ │ |}] let%expect_test "tanh plot" = @@ -509,21 +512,53 @@ let%expect_test "2D neuron hosted" = let routine = Train.to_routine (module Backend) ctx IDX.empty update in Train.run routine; Tensor.print_tree ~with_grad:true ~depth:9 v; - [%expect - {| - #8 +_v - 7.00e-1 - #9 grad_+_v - 1.00 - #6 * │#0 b - -6.00 │ 6.70 - #7 grad_* │#1 grad_b - 1.00 │ 1.00 - #2 w │#4 x │ - -3.00 1.00 │ 2.00 0.00 │ - #3 grad_w │#5 grad_x │ - 2.00 0.00 │ -3.00 1.00 │ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 132 2" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 2) (kind Batch))))) + (input + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 132))))))) + (bcast Broadcastable) (id ((sh_id 2) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 133))))))) + (bcast Broadcastable) (id ((sh_id 2) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 2) + (debug_name w))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Zero2hero_1of7.(fun) in file "test/zero2hero_1of7.ml", line 509, characters 16-70 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "2D neuron virtual" = Tensor.unsafe_reinitialize (); @@ -536,18 +571,50 @@ let%expect_test "2D neuron virtual" = let routine = Train.to_routine (module Backend) ctx IDX.empty update in Train.run routine; Tensor.print_tree ~with_grad:true ~depth:9 v; - [%expect - {| - #8 +_v - 7.00e-1 - #9 grad_+_v Virt/40 - <void> - #6 * Local/46 │#0 b - <void> │ 6.70 - #7 grad_* Virt/40 │#1 grad_b Local/46 - <void> │<void> - #2 w │#4 x │ - -3.00 1.00 │ 2.00 0.00 │ - #3 grad_w Local/46│#5 grad_x Local/46│ - <void> │<void> │ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 135 2" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 2) (kind Batch))))) + (input + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 135))))))) + (bcast Broadcastable) (id ((sh_id 2) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 136))))))) + (bcast Broadcastable) (id ((sh_id 2) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 2) + (debug_name w))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Zero2hero_1of7.(fun) in file "test/zero2hero_1of7.ml", line 536, characters 16-70 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] File "test/moons_demo_parallel.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/moons_demo_parallel.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/moons_demo_parallel.ml.corrected diff --git a/_build/default/test/moons_demo_parallel.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/moons_demo_parallel.ml.corrected index ce09725..627411e 100644 --- a/_build/default/test/moons_demo_parallel.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/moons_demo_parallel.ml.corrected @@ -105,4 +105,58 @@ let%expect_test "Half-moons data parallel" = ] in PrintBox_text.output Stdio.stdout plot_loss); - [%expect "Success"] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 2 1200" + ((Shape_mismatch + ((batch + ((dims + ((Dim ((d 1200) (label ()) (proj_id ((Proj_id 2))))) + (Dim ((d 2) (label ()) (proj_id ((Proj_id 3))))))) + (bcast Broadcastable) (id ((sh_id 13) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 13) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 4))))))) + (bcast Broadcastable) (id ((sh_id 13) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 13) + (debug_name moons_classes))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.example_train_loop in file "lib/train.ml", line 405, characters 20-51 + Called from Tutorials__Moons_demo_parallel.(fun) in file "test/moons_demo_parallel.ml", lines 58-62, characters 4-8 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] File "test/primitive_ops.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/primitive_ops.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/primitive_ops.ml.corrected diff --git a/_build/default/test/primitive_ops.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/primitive_ops.ml.corrected index 17afc2d..9d68d46 100644 --- a/_build/default/test/primitive_ops.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/primitive_ops.ml.corrected @@ -53,740 +53,731 @@ let%expect_test "relu" = let%op f x = relu x in let plot_box = plot_unop ~f () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 5.00│ #│ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │f │ # │ - │( │ ## │ - │x │ # │ - │) │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ * ******************************* **** ******* ****│ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ ## │ - │ 0.00│**** *** *** *** ********-*************** ********- - - - - - - - - - │ - ├─────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 5.00│ - │ │ x │ - └─────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 1 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 1))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 2))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 54, characters 17-32 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "sat01" = let%op f x = sat01 x in let plot_box = plot_unop ~f () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.00│ * *********###################### #### ####### ####│ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │f │ # │ - │( │ │ - │x │ │ - │) │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ │ │ - │ │ │ - │ │ │ - │ │ # │ - │ 0.00│**** *** *** *** ********-*************** ********- - ********************** **** *******-****│ - ├─────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 5.00│ - │ │ x │ - └─────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 3 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 3))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 4))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 107, characters 17-32 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "exp(x)" = let%op f x = exp x in let plot_box = plot_unop ~f ~x_max:1.0 () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 2.71│ *│ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ * │ - │ │ │ - │ │ * │ - │f │ * │ - │( │ * │ - │x │ │ - │) │ * │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ ** │ - │ │ * │ - │ │ * │ - │ │ ** │ - │ │ ** │ - │ │ ** │ - │ │ * │ - │ │ ** │ - │ │ *** │ - │ │ **** │ - │ │ ***** │ - │ │ ******* │ - │ │ *********** │ - │ 0.00│********* ************ ************** * - - - - - - - - - - - - │ - ├─────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 1.00│ - │ │ x │ - └─────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 5 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 5))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 6))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 160, characters 17-43 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "log(x)" = let%op f x = log x in let plot_box = plot_unop ~f ~x_min:0.1 ~x_max:5.0 () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.00e+1│* │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │f │ │ - │( │ * │ - │x │ │ - │) │ │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ ** │ - │ │ ** #############│ - │ │ *** ################### #### │ - │ │ ****** ######### #### ## │ - │ │ ******** *****##### #### │ - │ │ ###### ## ***** ************* **** ********************* ******* │ - │ │- - - - ####### - - - - - - - - - - - - - **********│ - │ │ ### # │ - │ │ #### │ - │ │ ## │ - │ │ ## │ - │ │ ## │ - │ │ # │ - │ -2.30 │# │ - ├────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │1.00e-1 5.00│ - │ │ x │ - └────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 7 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 7))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 8))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 213, characters 17-54 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "log2(x)" = let%op f x = log2 x in let plot_box = plot_unop ~f ~x_min:0.1 ~x_max:5.0 () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.44e+1│* │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │f │ │ - │( │ * │ - │x │ │ - │) │ │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ ** │ - │ │ ** #############│ ...TRUNCATED BY DUNE... + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 531, characters 17-54 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "recip(x)" = let%op f x = recip x in let plot_box = plot_unop ~f ~x_min:0.1 ~x_max:5.0 () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 1.00e+1 │# │ - │ │ │ - │ │ ## │ - │ │ ######### │ - │ │- - - ###-**************-********** *************-****-********************* *****************│ - │ │ ******* │ - │ │ ** │ - │ │ * │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │f │ │ - │( │ │ - │x │ * │ - │) │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ -1.00e+2│* │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │1.00e-1 5.00│ - │ │ x │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 21 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 21))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 22))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 584, characters 17-54 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "recip_sqrt(x)" = let%op f x = recip_sqrt x in let plot_box = plot_unop ~f ~x_min:0.1 ~x_max:5.0 () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 3.16 │# │ - │ │ │ - │ │ ## │ - │ │ ## │ - │ │ ####### │ - │ │ ### ############## ##### │ - │ │ ##### ############# #### ##################### #################│ - │ │- - - - - - -********** *************-****-********************* *****************│ - │ │ * ************** │ - │ │ **** │ - │ │ *** │ - │ │ * │ - │ │ * │ - │ │ * │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │f │ │ - │( │ * │ - │x │ │ - │) │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ * │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ -1.58e+1│* │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │1.00e-1 5.00│ - │ │ x │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 23 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 23))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 24))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 637, characters 17-54 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "tanh(x)" = let%op f x = tanh x in let plot_box = plot_unop ~f () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 9.99e-1 │ #│ - │ │ ** * ############## #### ####### ### │ - │ │ * * #### │ - │ │ * * ## │ - │ │ * * # │ - │ │ * * ## │ - │ │ # │ - │ │ * * │ - │ │ * * │ - │ │ # │ - │ │ * # * │ - │ │ * * │ - │ │ # │ - │ │ * # * │ - │ │ * * │ - │ │ * # * │ - │ │ ** ** │ - │ │ ** # ** │ - │f │ ** ** │ - │( │ * ***** # ****** │ - │x │**** *** *** *** ********- - - - - - - - - - ******* **** *******-****│ - │) │ # │ - │ │ │ - │ │ # │ - │ │ │ - │ │ # │ - │ │ │ - │ │ # │ - │ │ # │ - │ │ │ - │ │ # │ - │ │ # │ - │ │ # │ - │ │ │ - │ │ # │ - │ │ ## │ - │ │ # │ - │ │ ## │ - │ │ #### │ - │ -9.99e-1│#### ### ### ### ######## ###### │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 5.00│ - │ │ x │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 25 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 25))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 26))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 690, characters 17-32 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "where(x < 0, sin(x), cos(x))" = let%op f x = where (x < !.0.) (sin x) (cos x) in let plot_box = plot_unop ~f () in PrintBox_text.output Stdio.stdout plot_box; - [%expect - {| - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 9.99e-1 │ # * │ - │ │#### ## *** ## ** ***│ - │ │ # ** ## * │ - │ │ # * # * │ - │ │ # * │ - │ │ # * # * │ - │ │ * # │ - │ │ # * # * │ - │ │ # * │ - │ │ * # │ - │ │ # * # * │ - │ │ │ - │ │ # * # * │ - │ │ # * │ - │ │* * # #│ - │ │ # * │ - │ │ * * # # │ - │ │ # * │ - │f │ * * # # │ - │( │ # * │ - │x │- * - - - - - - *- - - - - - # - - - - - -# │ - │) │ # * * │ - │ │ * * # # │ - │ │ # # * * │ - │ │ * * # # │ - │ │ # # * * │ - │ │ * * # # │ - │ │ # # * * │ - │ │ * * # # │ - │ │ # * # * # * │ - │ │ * # # * * # │ - │ │ * * # # │ - │ │ # # * * │ - │ │ * * # * # # │ - │ │ * * * # │ - │ │ * # # * * # │ - │ │ * * # # * * # # │ - │ │ * * # # * * # # │ - │ │ ** * # # * * # ## │ - │ -9.99e-1│ * ***** ####### ******* #### # │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │-5.00 5.00│ - │ │ x │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 27 100" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 100) (label ()) (proj_id ((Proj_id 27))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 28))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name x_flat))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Primitive_ops.plot_unop in file "test/primitive_ops.ml", line 35, characters 19-72 + Called from Tutorials__Primitive_ops.(fun) in file "test/primitive_ops.ml", line 743, characters 17-32 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] File "test/micrograd_demo.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/micrograd_demo.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/micrograd_demo.ml.corrected diff --git a/_build/default/test/micrograd_demo.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/micrograd_demo.ml.corrected index 59a566d..068b7a5 100644 --- a/_build/default/test/micrograd_demo.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/micrograd_demo.ml.corrected @@ -180,223 +180,34 @@ let%expect_test "Micrograd half-moons example" = in Stdio.printf "Half-moons scatterplot and decision boundary:\n%!"; PrintBox_text.output Stdio.stdout plot_moons; - [%expect - {| - Half-moons scatterplot and decision boundary: - ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │****************************#***********************************************************************│ - │****************************###***###***#***********************************************************│ - │***************************#********#***#***********************************************************│ - │********************#*********************##*#*#****************************************************│ - │******************#***#*****##*#*#*#****#*#*#*##****************************************************│ - │**************#*#**###**#*##**##********#**#****###**#**********************************************│ - │***********#***##***#**##*****************#*#*##*###**********************************************..│ - │***************#**###******************************##*#******************************************...│ - │*************#*****#******************************#*#***#*#*************************************....│ - │*********#***#******************......************##*###**#************************************.....│ - │******#***#*#*#****************........******************#*#*********************************.......│ - │*****###****#****************...........****************#***********************************........│ - │*******#*###****************.............******************#*#*****************************.........│ - │**********##***************.......%%......***************#**##****************************..........│ - │*****#***#****************......%..%%......*********************************************..........%.│ - │**####*******************......%..%..........****************##*#**********************........%...%│ - │****#*******************.......%%..%..........***************#*#**********************.........%....│ - │*#****##***************.........%....%.........************##***#********************.......%...%%..│ - │****#*#***************.........%..%.%...........*************#**#*******************..........%.%...│ - │##*##****************............%...............**************#*##****************.........%.%.%%%.│ - │**#####************............%...%%.............*******************************...........%..%.%..│ - │******************...............%.%.%%............*********#*#*#*#*************................%%..│ - │***##************................%..%..%............************#*#************.............%...%...│ - │##**#***********...................%...%.............********#**###***********...........%.%%.......│ - │###************..................%.%.%................***********##**********..................%....│ - │**##**********.........................................**********#*********.............%%.%..%.....│ - │**#**********......................%%...................********##********..............%%.%........│ - │************..........................%..................****#**#********...................%.......│ - │***********.........................%%.%..................*****##******...............%..%..........│ - │**********.............................%%..................***********.................%%.%%........│ - │*********..............................%...%................*******.....................%%%.........│ - │********...................................%..%....................................%.....%..........│ - │*******.................................%%..%.%................................%.%.%.%%.............│ - │******.....................................%%.%...%%.%.......................%%%....%.%.%...........│ - │*****....................................%.....%.%..%....................%.....%%.%.%...............│ - │****........................................%%...%.%%%%..%.......%.........%%.%%....................│ - │***...............................................%..%.......%..%%%%...%.%..%.%.....................│ - │**.................................................%.%.%............%..%...%........................│ - │*.................................................%....%.%......%%...%.%............................│ - │..........................................................%..%......%%%.............................│ - └────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Stdio.printf "Loss:\n%!"; let plot_loss = PrintBox_utils.plot ~x_label:"step" ~y_label:"loss" [ Line_plot { points = Array.of_list_rev !losses; content = PrintBox.line "-" } ] in PrintBox_text.output Stdio.stdout plot_loss; - [%expect - {| - Loss: - ┌────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 3.79e+1│- │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │l │ │ - │o │ │ - │s │ │ - │s │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │- │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │- - - │ - │ 0.00 │----------------------------------------------------------------------------------------------------│ - ├────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │0.00 3.99e+2│ - │ │ step │ - └────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Stdio.printf "Log-loss, for better visibility:\n%!"; let plot_loss = PrintBox_utils.plot ~x_label:"step" ~y_label:"log loss" [ Line_plot { points = Array.of_list_rev !log_losses; content = PrintBox.line "-" } ] in PrintBox_text.output Stdio.stdout plot_loss; - [%expect - {| - Log-loss, for better visibility: - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ 3.63 │- │ - │ │ │ - │ │ │ - │ │ │ - │ │- │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │- │ - │ │ - - │ - │ │ - - - │ - │ │------ - │ - │ │ ---- - - --- - - - - - │ - │ │ -- - - - --- -- - -- - │ - │ │ - -- - - --- - - --- ----- - -- │ - │l │ -- - - - - --- - - - │ - │o │ - - - -- - -- - - - - - │ - │g │ - - - - -- - - - - - - - │ - │ │ - - - -- - - - -- - - - │ - │l │ - - -- -- - - - - -│ - │o │ - - - - - - - - - - - │ - │s │ - - - - -- - │ - │s │ - - │ - │ │ - - - - - - - - - │ - │ │ - - - - - │ - │ │ - - │ - │ │ - - - │ - │ │ - - │ - │ │ │ - │ │ - │ - │ │ - │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ - │ - │ │ │ - │ │ │ - │ -1.00e+1│ - - - - ----- -- --------------- ---------------------------------------------------------│ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │0.00 3.99e+2│ - │ │ step │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Stdio.printf "\nLearning rate:\n%!"; let plot_lr = PrintBox_utils.plot ~x_label:"step" ~y_label:"learning rate" [ Line_plot { points = Array.of_list_rev !learning_rates; content = PrintBox.line "-" } ] in PrintBox_text.output Stdio.stdout plot_lr; - [%expect - {| - Learning rate: - ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ -1.00e-1│ -│ - │ │ ---│ - │ │ ---- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ --- │ - │ │ --- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │l │ ---- │ - │e │ --- │ - │a │ --- │ - │r │ --- │ - │n │ --- │ - │i │ ---- │ - │n │ --- │ - │g │ ---- │ - │ │ --- │ - │r │ ---- │ - │a │ --- │ - │t │ --- │ - │e │ --- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ --- │ - │ │ --- │ - │ │ --- │ - │ │ ---- │ - │ │ --- │ - │ │ ---- │ - │ -2.00e-1│--- │ - ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ │0.00 3.99e+2│ - │ │ step │ - └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; (* Testing how the syntax extension %op creates labels for the resulting tensors: *) Stdio.printf "mlp_result's name: %s\n%!" @@ Tensor.debug_name mlp_result; (* Note: mlp_result is not included in the resulting tensor's label, because the identifier label does not propagate across function calls. *) - [%expect {| mlp_result's name: mlp_point |}]; + [%expect.unreachable]; (Stdio.printf "(mlp moons_input) name: %s\n%!" @@ Tensor.debug_name @@ @@ -410,4 +221,59 @@ let%expect_test "Micrograd half-moons example" = ] -> subtensor | _ -> assert false); - [%expect {| (mlp moons_input) name: mlp_moons_input |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 121 40" + ((Shape_mismatch + ((batch + ((dims + ((Dim ((d 40) (label ()) (proj_id ((Proj_id 121))))) + (Dim ((d 10) (label ()) (proj_id ((Proj_id 122))))))) + (bcast Broadcastable) (id ((sh_id 1) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 1) (kind Input))))) + (output + ((dims ((Dim ((d 1) (label ()) (proj_id ((Proj_id 123))))))) + (bcast Broadcastable) (id ((sh_id 1) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 1) + (debug_name moons_classes))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.to_routine in file "lib/train.ml", line 347, characters 26-61 + Called from Tutorials__Micrograd_demo.(fun) in file "test/micrograd_demo.ml", line 137, characters 4-83 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] File "test/hello_world_op.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/hello_world_op.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/hello_world_op.ml.corrected diff --git a/_build/default/test/hello_world_op.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/hello_world_op.ml.corrected index 0cea005..db9168d 100644 --- a/_build/default/test/hello_world_op.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/hello_world_op.ml.corrected @@ -102,49 +102,15 @@ let%expect_test "Print constant tensor" = let%op hey = [ (1, 2, 3); (4, 5, 6) ] in Train.forward_and_forget backend ctx hey; Tensor.print ~with_code:false ~with_grad:false `Inline @@ hey; - [%expect - {| - [0]: [ 1.00 , 2.00 , 3.00 ; 4.00 , 5.00 , 6.00 ]_hey shape 1:3->0:2 [ - 1.00 , 2.00 , 3.00 - ; 4.00 , 5.00 , 6.00 - ] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ hey; - [%expect - {| - ┌────────────────────────────────────────────────────────────────────────┐ - │[0]: [ 1.00 , 2.00 , 3.00 ; 4.00 , 5.00 , 6.00 ]_hey shape 1:3->0:2 │ - │┌──────┬──────────────────┐ │ - ││ │axis 1 │ │ - │├──────┼──────────────────┤ │ - ││axis 0│ 1.00 2.00 3.00 │ │ - ││ │ 4.00 5.00 6.00 │ │ - │└──────┴──────────────────┘ │ - └────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op hoo = [| [ 1; 2; 3 ]; [ 4; 5; 6 ] |] in Train.forward_and_forget backend ctx hoo; Tensor.print ~with_code:false ~with_grad:false `Inline @@ hoo; - [%expect - {| - [1]: [| [ 1.00 ; 2.00 ; 3.00 ] ; [ 4.00 ; 5.00 ; 6.00 ] |]_hoo shape 0:2|1:3 [| - [ 1.00 ; 2.00 ; 3.00 ] - ; [ 4.00 ; 5.00 ; 6.00 ] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ hoo; - [%expect - {| - ┌─────────────────────────────────────────────────────────────────────────────┐ - │[1]: [| [ 1.00 ; 2.00 ; 3.00 ] ; [ 4.00 ; 5.00 ; 6.00 ] |]_hoo shape 0:2|1:3 │ - │┌──────┬──────────────────┐ │ - ││ │axis 1 │ │ - │├──────┼──────────────────┤ │ - ││axis 0│ 1.00 2.00 3.00 │ │ - ││ │ 4.00 5.00 6.00 │ │ - │└──────┴──────────────────┘ │ - └─────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op hey2 = [ ((1, 2, 3), (4, 5, 6)); @@ -155,31 +121,9 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx hey2; Tensor.print ~with_code:false ~with_grad:false `Inline @@ hey2; - [%expect - {| - [2]: c4x2x3_hey2 shape 1:2,2:3->0:4 [ - ( 1.00 , 2.00 , 3.00 ) , ( 4.00 , 5.00 , 6.00 ) - ; ( 7.00 , 8.00 , 9.00 ) , ( 10.00 , 11.00 , 12.00 ) - ; ( 13.00 , 14.00 , 15.00 ) , ( 16.00 , 17.00 , 18.00 ) - ; ( 19.00 , 20.00 , 21.00 ) , ( 22.00 , 23.00 , 24.00 ) - ] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ hey2; - [%expect - {| - ┌────────────────────────────────────────────────────────────────┐ - │[2]: c4x2x3_hey2 shape 1:2,2:3->0:4 │ - │┌──────┬───────────────────────────┬───────────────────────────┐│ - ││ │0 @ 1 │1 @ 1 ││ - ││ │axis 2 │axis 2 ││ - │├──────┼───────────────────────────┼───────────────────────────┤│ - ││axis 0│ 1.00 2.00 3.00 │ 4.00 5.00 6.00 ││ - ││ │ 7.00 8.00 9.00 │ 1.00e+1 1.10e+1 1.20e+1 ││ - ││ │ 1.30e+1 1.40e+1 1.50e+1 │ 1.60e+1 1.70e+1 1.80e+1 ││ - ││ │ 1.90e+1 2.00e+1 2.10e+1 │ 2.20e+1 2.30e+1 2.40e+1 ││ - │└──────┴───────────────────────────┴───────────────────────────┘│ - └────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op hoo2 = [| [ [ 1; 2; 3 ]; [ 4; 5; 6 ] ]; @@ -190,29 +134,9 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx hoo2; Tensor.print ~with_code:false ~with_grad:false `Inline @@ hoo2; - [%expect - {| - [3]: c4x2x3_hoo2 shape 0:4|1:2,2:3 [| - [ [ 1.00 ; 2.00 ; 3.00 ] ; [ 4.00 ; 5.00 ; 6.00 ] ] - ; [ [ 7.00 ; 8.00 ; 9.00 ] ; [ 10.00 ; 11.00 ; 12.00 ] ] - ; [ [ 13.00 ; 14.00 ; 15.00 ] ; [ 16.00 ; 17.00 ; 18.00 ] ] - ; [ [ 19.00 ; 20.00 ; 21.00 ] ; [ 22.00 ; 23.00 ; 24.00 ] ] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ hoo2; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[3]: c4x2x3_hoo2 shape 0:4|1:2,2:3 │ - │┌──────┬──────────────────┬───────────────────────────┬───────────────────────────┬───────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 │3 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 │axis 2 ││ - │├──────┼──────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────┤│ - ││axis 1│ 1.00 2.00 3.00 │ 7.00 8.00 9.00 │ 1.30e+1 1.40e+1 1.50e+1 │ 1.90e+1 2.00e+1 2.10e+1 ││ - ││ │ 4.00 5.00 6.00 │ 1.00e+1 1.10e+1 1.20e+1 │ 1.60e+1 1.70e+1 1.80e+1 │ 2.20e+1 2.30e+1 2.40e+1 ││ - │└──────┴──────────────────┴───────────────────────────┴───────────────────────────┴───────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op heyhoo = [| [| [ 1; 2; 3 ]; [ 4; 5; 6 ] |]; @@ -223,29 +147,9 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx heyhoo; Tensor.print ~with_code:false ~with_grad:false `Inline @@ heyhoo; - [%expect - {| - [4]: c4x2x3_heyhoo shape 0:4,1:2|2:3 [| - [| [ 1.00 ; 2.00 ; 3.00 ] ; [ 4.00 ; 5.00 ; 6.00 ] |] - ; [| [ 7.00 ; 8.00 ; 9.00 ] ; [ 10.00 ; 11.00 ; 12.00 ] |] - ; [| [ 13.00 ; 14.00 ; 15.00 ] ; [ 16.00 ; 17.00 ; 18.00 ] |] - ; [| [ 19.00 ; 20.00 ; 21.00 ] ; [ 22.00 ; 23.00 ; 24.00 ] |] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ heyhoo; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[4]: c4x2x3_heyhoo shape 0:4,1:2|2:3 │ - │┌──────┬──────────────────┬───────────────────────────┬───────────────────────────┬───────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 │3 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 │axis 2 ││ - │├──────┼──────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────┤│ - ││axis 1│ 1.00 2.00 3.00 │ 7.00 8.00 9.00 │ 1.30e+1 1.40e+1 1.50e+1 │ 1.90e+1 2.00e+1 2.10e+1 ││ - ││ │ 4.00 5.00 6.00 │ 1.00e+1 1.10e+1 1.20e+1 │ 1.60e+1 1.70e+1 1.80e+1 │ 2.20e+1 2.30e+1 2.40e+1 ││ - │└──────┴──────────────────┴───────────────────────────┴───────────────────────────┴───────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op heyhoo2 = [| [| [ [ 1; 31 ]; [ 2; 32 ]; [ 3; 33 ] ]; [ [ 4; 34 ]; [ 5; 35 ]; [ 6; 36 ] ] |]; @@ -256,54 +160,9 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx heyhoo2; Tensor.print ~with_code:false ~with_grad:false `Inline @@ heyhoo2; - [%expect - {| - [5]: c4x2x3x2_heyhoo2 shape 0:4,1:2|2:3,3:2 [| - [| - [ [ 1.00 ; 31.00 ] ; [ 2.00 ; 32.00 ] ; [ 3.00 ; 33.00 ] ] - ; [ [ 4.00 ; 34.00 ] ; [ 5.00 ; 35.00 ] ; [ 6.00 ; 36.00 ] ] - |] - ; [| - [ [ 7.00 ; 37.00 ] ; [ 8.00 ; 38.00 ] ; [ 9.00 ; 39.00 ] ] - ; [ [ 10.00 ; 40.00 ] ; [ 11.00 ; 41.00 ] ; [ 12.00 ; 42.00 ] ] - |] - ; [| - [ [ 13.00 ; 43.00 ] ; [ 14.00 ; 44.00 ] ; [ 15.00 ; 45.00 ] ] - ; [ [ 16.00 ; 46.00 ] ; [ 17.00 ; 47.00 ] ; [ 18.00 ; 48.00 ] ] - |] - ; [| - [ [ 19.00 ; 49.00 ] ; [ 20.00 ; 50.00 ] ; [ 21.00 ; 51.00 ] ] - ; [ [ 22.00 ; 52.00 ] ; [ 23.00 ; 53.00 ] ; [ 24.00 ; 54.00 ] ] - |] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ heyhoo2; - [%expect - {| - ┌──────────────────────────────────────────────┐ - │[5]: c4x2x3x2_heyhoo2 shape 0:4,1:2|2:3,3:2 │ - │┌──────┬──────────────────┬──────────────────┐│ - ││ │0 @ 1 │1 @ 1 ││ - ││ │axis 3 │axis 3 ││ - │├──────┼──────────────────┼──────────────────┤│ - ││0 @ 0 │ 1.00 3.10e+1 │ 4.00 3.40e+1 ││ - ││axis 2│ 2.00 3.20e+1 │ 5.00 3.50e+1 ││ - ││ │ 3.00 3.30e+1 │ 6.00 3.60e+1 ││ - │├──────┼──────────────────┼──────────────────┤│ - ││1 @ 0 │ 7.00 3.70e+1 │ 1.00e+1 4.00e+1 ││ - ││axis 2│ 8.00 3.80e+1 │ 1.10e+1 4.10e+1 ││ - ││ │ 9.00 3.90e+1 │ 1.20e+1 4.20e+1 ││ - │├──────┼──────────────────┼──────────────────┤│ - ││2 @ 0 │ 1.30e+1 4.30e+1 │ 1.60e+1 4.60e+1 ││ - ││axis 2│ 1.40e+1 4.40e+1 │ 1.70e+1 4.70e+1 ││ - ││ │ 1.50e+1 4.50e+1 │ 1.80e+1 4.80e+1 ││ - │├──────┼──────────────────┼──────────────────┤│ - ││3 @ 0 │ 1.90e+1 4.90e+1 │ 2.20e+1 5.20e+1 ││ - ││axis 2│ 2.00e+1 5.00e+1 │ 2.30e+1 5.30e+1 ││ - ││ │ 2.10e+1 5.10e+1 │ 2.40e+1 5.40e+1 ││ - │└──────┴──────────────────┴──────────────────┘│ - └──────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op heyhoo3 = [| [| @@ -318,63 +177,9 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx heyhoo3; Tensor.print ~with_code:false ~with_grad:false `Inline @@ heyhoo3; - [%expect - {| - [6]: c2x2x2x3x2_heyhoo3 shape 0:2,1:2|2:2,3:3,4:2 [| - [| - [ - [ [ 1.00 ; 31.00 ] ; [ 2.00 ; 32.00 ] ; [ 3.00 ; 33.00 ] ] - ; [ [ 4.00 ; 34.00 ] ; [ 5.00 ; 35.00 ] ; [ 6.00 ; 36.00 ] ] - ] - ; [ - [ [ 7.00 ; 37.00 ] ; [ 8.00 ; 38.00 ] ; [ 9.00 ; 39.00 ] ] - ; [ [ 10.00 ; 40.00 ] ; [ 11.00 ; 41.00 ] ; [ 12.00 ; 42.00 ] ] - ] - |] - ; [| - [ - [ [ 13.00 ; 43.00 ] ; [ 14.00 ; 44.00 ] ; [ 15.00 ; 45.00 ] ] - ; [ [ 16.00 ; 46.00 ] ; [ 17.00 ; 47.00 ] ; [ 18.00 ; 48.00 ] ] - ] - ; [ - [ [ 19.00 ; 49.00 ] ; [ 20.00 ; 50.00 ] ; [ 21.00 ; 51.00 ] ] - ; [ [ 22.00 ; 52.00 ] ; [ 23.00 ; 53.00 ] ; [ 24.00 ; 54.00 ] ] - ] - |] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ heyhoo3; - [%expect - {| - ┌──────────────────────────────────────────────────┐ - │[6]: c2x2x2x3x2_heyhoo3 shape 0:2,1:2|2:2,3:3,4:2 │ - │┌──────┬───────────────┬──────────────────┐ │ - ││0 @ 0 │0 @ 2 │1 @ 2 │ │ - ││ │axis 4 │axis 4 │ │ - │├──────┼───────────────┼──────────────────┤ │ - ││0 @ 1 │ 1.00 3.10e+1 │ 4.00 3.40e+1 │ │ - ││axis 3│ 2.00 3.20e+1 │ 5.00 3.50e+1 │ │ - ││ │ 3.00 3.30e+1 │ 6.00 3.60e+1 │ │ - │├──────┼───────────────┼──────────────────┤ │ - ││1 @ 1 │ 7.00 3.70e+1 │ 1.00e+1 4.00e+1 │ │ - ││axis 3│ 8.00 3.80e+1 │ 1.10e+1 4.10e+1 │ │ - ││ │ 9.00 3.90e+1 │ 1.20e+1 4.20e+1 │ │ - │└──────┴───────────────┴──────────────────┘ │ - ├──────────────────────────────────────────────────┤ - │┌──────┬──────────────────┬──────────────────┐ │ - ││1 @ 0 │0 @ 2 │1 @ 2 │ │ - ││ │axis 4 │axis 4 │ │ - │├──────┼──────────────────┼──────────────────┤ │ - ││0 @ 1 │ 1.30e+1 4.30e+1 │ 1.60e+1 4.60e+1 │ │ - ││axis 3│ 1.40e+1 4.40e+1 │ 1.70e+1 4.70e+1 │ │ - ││ │ 1.50e+1 4.50e+1 │ 1.80e+1 4.80e+1 │ │ - │├──────┼──────────────────┼──────────────────┤ │ - ││1 @ 1 │ 1.90e+1 4.90e+1 │ 2.20e+1 5.20e+1 │ │ - ││axis 3│ 2.00e+1 5.00e+1 │ 2.30e+1 5.30e+1 │ │ - ││ │ 2.10e+1 5.10e+1 │ 2.40e+1 5.40e+1 │ │ - │└──────┴──────────────────┴──────────────────┘ │ - └──────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let%op heyhoo4 = [| [ @@ -389,63 +194,51 @@ let%expect_test "Print constant tensor" = in Train.forward_and_forget backend ctx heyhoo4; Tensor.print ~with_code:false ~with_grad:false `Inline @@ heyhoo4; - [%expect - {| - [7]: c2x2x2x3x2_heyhoo4 shape 0:2|4:2->1:2,2:2,3:3 [| - [ - [ - [ 1.00 , 31.00 ; 2.00 , 32.00 ; 3.00 , 33.00 ] - ; [ 4.00 , 34.00 ; 5.00 , 35.00 ; 6.00 , 36.00 ] - ] - ; [ - [ 7.00 , 37.00 ; 8.00 , 38.00 ; 9.00 , 39.00 ] - ; [ 10.00 , 40.00 ; 11.00 , 41.00 ; 12.00 , 42.00 ] - ] - ] - ; [ - [ - [ 13.00 , 43.00 ; 14.00 , 44.00 ; 15.00 , 45.00 ] - ; [ 16.00 , 46.00 ; 17.00 , 47.00 ; 18.00 , 48.00 ] - ] - ; [ - [ 19.00 , 49.00 ; 20.00 , 50.00 ; 21.00 , 51.00 ] - ; [ 22.00 , 52.00 ; 23.00 , 53.00 ; 24.00 , 54.00 ] - ] - ] - |] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ heyhoo4; - [%expect - {| - ┌───────────────────────────────────────────────────┐ - │[7]: c2x2x2x3x2_heyhoo4 shape 0:2|4:2->1:2,2:2,3:3 │ - │┌──────┬───────────────┬──────────────────┐ │ - ││0 @ 0 │0 @ 2 │1 @ 2 │ │ - ││ │axis 4 │axis 4 │ │ - │├──────┼───────────────┼──────────────────┤ │ - ││0 @ 1 │ 1.00 3.10e+1 │ 4.00 3.40e+1 │ │ - ││axis 3│ 2.00 3.20e+1 │ 5.00 3.50e+1 │ │ - ││ │ 3.00 3.30e+1 │ 6.00 3.60e+1 │ │ - │├──────┼───────────────┼──────────────────┤ │ - ││1 @ 1 │ 7.00 3.70e+1 │ 1.00e+1 4.00e+1 │ │ - ││axis 3│ 8.00 3.80e+1 │ 1.10e+1 4.10e+1 │ │ - ││ │ 9.00 3.90e+1 │ 1.20e+1 4.20e+1 │ │ - │└──────┴───────────────┴──────────────────┘ │ - ├───────────────────────────────────────────────────┤ - │┌──────┬──────────────────┬──────────────────┐ │ - ││1 @ 0 │0 @ 2 │1 @ 2 │ │ - ││ │axis 4 │axis 4 │ │ - │├──────┼──────────────────┼──────────────────┤ │ - ││0 @ 1 │ 1.30e+1 4.30e+1 │ 1.60e+1 4.60e+1 │ │ - ││axis 3│ 1.40e+1 4.40e+1 │ 1.70e+1 4.70e+1 │ │ - ││ │ 1.50e+1 4.50e+1 │ 1.80e+1 4.80e+1 │ │ - │├──────┼──────────────────┼──────────────────┤ │ - ││1 @ 1 │ 1.90e+1 4.90e+1 │ 2.20e+1 5.20e+1 │ │ - ││axis 3│ 2.00e+1 5.00e+1 │ 2.30e+1 5.30e+1 │ │ - ││ │ 2.10e+1 5.10e+1 │ 2.40e+1 5.40e+1 │ │ - │└──────┴──────────────────┴──────────────────┘ │ - └───────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 18 2" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ((Dim ((d 3) (label ()) (proj_id ((Proj_id 17))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 18))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name c2x3_hey))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Hello_world_op.(fun) in file "test/hello_world_op.ml", line 103, characters 2-42 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "Matrix multiplication dims 2x3" = Tensor.unsafe_reinitialize (); @@ -464,31 +257,52 @@ let%expect_test "Matrix multiplication dims 2x3" = let%op y = ("hey" 7.0 * [ 2; 3 ]) + [ 4; 5; 6 ] in Train.forward_and_forget backend ctx y; Tensor.print ~with_code:false ~with_grad:false `Default @@ hey; - [%expect - {| - ┌────────────────────────┐ - │[0]: hey shape 1:2->0:3 │ - │┌──────┬────────────┐ │ - ││ │axis 1 │ │ - │├──────┼────────────┤ │ - ││axis 0│ 7.00 7.00 │ │ - ││ │ 7.00 7.00 │ │ - ││ │ 7.00 7.00 │ │ - │└──────┴────────────┘ │ - └────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ y; - [%expect - {| - ┌──────────────────────────────┐ - │[6]: +_y shape 0:3 │ - │┌┬───────────────────────────┐│ - │││axis 0 ││ - │├┼───────────────────────────┤│ - │││ 3.90e+1 4.00e+1 4.10e+1 ││ - │└┴───────────────────────────┘│ - └──────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 19 3" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 2) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 2) (kind Input))))) + (output + ((dims ((Dim ((d 3) (label ()) (proj_id ((Proj_id 19))))))) + (bcast Broadcastable) (id ((sh_id 2) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 2) + (debug_name n2))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Hello_world_op.(fun) in file "test/hello_world_op.ml", line 465, characters 2-40 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "Big matrix" = Tensor.unsafe_reinitialize (); @@ -509,72 +323,58 @@ let%expect_test "Big matrix" = let y = TDSL.O.((hey * zero_to_twenty) + zero_to_twenty) in Train.forward_and_forget backend ctx y; Tensor.print ~with_code:false ~with_grad:false `Inline zero_to_twenty; - [%expect - {| - [2]: 0...20 shape 0:21 [ - 0.00 - ; 1.00 - ; 2.00 - ; 3.00 - ; 4.00 - ; 5.00 - ; 6.00 - ; 7.00 - ; 8.00 - ; 9.00 - ; 10.00 - ; 11.00 - ; 12.00 - ; 13.00 - ; 14.00 - ; 15.00 - ; 16.00 - ; 17.00 - ; 18.00 - ; 19.00 - ; 20.00 - ] - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default zero_to_twenty; - [%expect - {| - ┌──────────────────────────────────────┐ - │[2]: 0...20 shape 0:21 │ - │┌┬───────────────────────────────────┐│ - │││axis 0 ││ - │├┼───────────────────────────────────┤│ - │││ 0.00 1.00 ... 1.90e+1 2.00e+1 ││ - │└┴───────────────────────────────────┘│ - └──────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default hey; - [%expect - {| - ┌──────────────────────────────────────────────────┐ - │[0]: hey shape 1:21->0:21 │ - │┌──────┬─────────────────────────────────────────┐│ - ││ │axis 1 ││ - │├──────┼─────────────────────────────────────────┤│ - ││axis 0│ 5.00e-1 5.00e-1 ... 5.00e-1 5.00e-1 ││ - ││ │ 5.00e-1 5.00e-1 ... 5.00e-1 5.00e-1 ││ - ││ │ ... ... ... ... ... ││ - ││ │ 5.00e-1 5.00e-1 ... 5.00e-1 5.00e-1 ││ - ││ │ 5.00e-1 5.00e-1 ... 5.00e-1 5.00e-1 ││ - │└──────┴─────────────────────────────────────────┘│ - └──────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default y; - [%expect - {| - ┌────────────────────────────────────────────┐ - │[5]: + shape 0:21 │ - │┌┬─────────────────────────────────────────┐│ - │││axis 0 ││ - │├┼─────────────────────────────────────────┤│ - │││ 1.05e+2 1.06e+2 ... 1.24e+2 1.25e+2 ││ - │└┴─────────────────────────────────────────┘│ - └────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 21 21" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ((Dim ((d 21) (label ()) (proj_id ((Proj_id 20))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 21) (label ()) (proj_id ((Proj_id 21))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name hey))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 247, characters 61-72 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Hello_world_op.(fun) in file "test/hello_world_op.ml", line 510, characters 2-40 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "Very big tensor" = Tensor.unsafe_reinitialize (); @@ -595,156 +395,60 @@ let%expect_test "Very big tensor" = let%op hoo = (hey * (1 + 1)) - 10 in Train.forward_and_forget backend ctx hoo; Tensor.print ~with_code:false ~with_grad:false `Default hey; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[0]: r6x10x11x7x8x9 shape 0:6|3:7,4:8,5:9->1:10,2:11 │ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││0 @ 0 │0 @ 4 │1 @ 4 │~~~~~ │6 @ 4 │7 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5│axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 1 │ 0.00 1.00 ... 7.00 8.00 │ 9.00 1.00e+1 ... 1.60e+1 1.70e+1 │ ... │ 5.40e+1 5.50e+1 ... 6.10e+1 6.20e+1 │ 6.30e+1 6.40e+1 ... 7.00e+1 7.10e+1 ││ - ││axis 2│ 5.04e+2 5.05e+2 ... 5.11e+2 5.12e+2 │ 5.13e+2 5.14e+2 ... 5.20e+2 5.21e+2 │ │ 5.58e+2 5.59e+2 ... 5.65e+2 5.66e+2 │ 5.67e+2 5.68e+2 ... 5.74e+2 5.75e+2 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 4.53e+3 4.53e+3 ... 4.54e+3 4.54e+3 │ 4.54e+3 4.54e+3 ... 4.55e+3 4.55e+3 │ │ 4.59e+3 4.59e+3 ... 4.59e+3 4.59e+3 │ 4.59e+3 4.60e+3 ... 4.60e+3 4.60e+3 ││ - ││ │ 5.04e+3 5.04e+3 ... 5.04e+3 5.04e+3 │ 5.04e+3 5.05e+3 ... 5.05e+3 5.05e+3 │ │ 5.09e+3 5.09e+3 ... 5.10e+3 5.10e+3 │ 5.10e+3 5.10e+3 ... 5.11e+3 5.11e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 1 │ 5.54e+3 5.54e+3 ... 5.55e+3 5.55e+3 │ 5.55e+3 5.55e+3 ... 5.56e+3 5.56e+3 │ ... │ 5.59e+3 5.59e+3 ... 5.60e+3 5.60e+3 │ 5.60e+3 5.60e+3 ... 5.61e+3 5.61e+3 ││ - ││axis 2│ 6.04e+3 6.04e+3 ... 6.05e+3 6.05e+3 │ 6.05e+3 6.05e+3 ... 6.06e+3 6.06e+3 │ │ 6.10e+3 6.10e+3 ... 6.10e+3 6.11e+3 │ 6.11e+3 6.11e+3 ... 6.11e+3 6.11e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.00e+4 1.00e+4 ... 1.00e+4 1.00e+4 │ 1.00e+4 1.00e+4 ... 1.00e+4 1.00e+4 │ │ 1.01e+4 1.01e+4 ... 1.01e+4 1.01e+4 │ 1.01e+4 1.01e+4 ... 1.01e+4 1.01e+4 ││ - ││ │ 1.05e+4 1.05e+4 ... 1.05e+4 1.05e+4 │ 1.05e+4 1.05e+4 ... 1.06e+4 1.06e+4 │ │ 1.06e+4 1.06e+4 ... 1.06e+4 1.06e+4 │ 1.06e+4 1.06e+4 ... 1.06e+4 1.06e+4 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... │ ... ││ - ││axis 2│ │ │ │ │ ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││8 @ 1 │ 4.43e+4 4.43e+4 ... 4.43e+4 4.43e+4 │ 4.43e+4 4.43e+4 ... 4.43e+4 4.43e+4 │ ... │ 4.44e+4 4.44e+4 ... 4.44e+4 4.44e+4 │ 4.44e+4 4.44e+4 ... 4.44e+4 4.44e+4 ││ - ││axis 2│ 4.48e+4 4.48e+4 ... 4.48e+4 4.48e+4 │ 4.48e+4 4.48e+4 ... 4.48e+4 4.48e+4 │ │ 4.49e+4 4.49e+4 ... 4.49e+4 4.49e+4 │ 4.49e+4 4.49e+4 ... 4.49e+4 4.49e+4 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 4.88e+4 4.88e+4 ... 4.88e+4 4.88e+4 │ 4.88e+4 4.88e+4 ... 4.89e+4 4.89e+4 │ │ 4.89e+4 4.89e+4 ... 4.89e+4 4.89e+4 │ 4.89e+4 4.89e+4 ... 4.89e+4 4.89e+4 ││ - ││ │ 4.93e+4 4.93e+4 ... 4.93e+4 4.94e+4 │ 4.94e+4 4.94e+4 ... 4.94e+4 4.94e+4 │ │ 4.94e+4 4.94e+4 ... 4.94e+4 4.94e+4 │ 4.94e+4 4.94e+4 ... 4.94e+4 4.94e+4 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││9 @ 1 │ 4.98e+4 4.98e+4 ... 4.99e+4 4.99e+4 │ 4.99e+4 4.99e+4 ... 4.99e+4 4.99e+4 │ ... │ 4.99e+4 4.99e+4 ... 4.99e+4 4.99e+4 │ 4.99e+4 4.99e+4 ... 4.99e+4 4.99e+4 ││ - ││axis 2│ 5.04e+4 5.04e+4 ... 5.04e+4 5.04e+4 │ 5.04e+4 5.04e+4 ... 5.04e+4 5.04e+4 │ │ 5.04e+4 5.04e+4 ... 5.04e+4 5.04e+4 │ 5.04e+4 5.04e+4 ... 5.04e+4 5.04e+4 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 5.44e+4 5.44e+4 ... 5.44e+4 5.44e+4 │ 5.44e+4 5.44e+4 ... 5.44e+4 5.44e+4 │ │ 5.44e+4 5.44e+4 ... 5.44e+4 5.44e+4 │ 5.44e+4 5.44e+4 ... 5.45e+4 5.45e+4 ││ - ││ │ 5.49e+4 5.49e+4 ... 5.49e+4 5.49e+4 │ 5.49e+4 5.49e+4 ... 5.49e+4 5.49e+4 │ │ 5.49e+4 5.49e+4 ... 5.49e+4 5.49e+4 │ 5.49e+4 5.50e+4 ... 5.50e+4 5.50e+4 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││1 @ 0 │0 @ 4 │1 @ 4 │~~~~~ │6 @ 4 │7 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5│axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 1 │ 5.54e+4 5.54e+4 ... 5.54e+4 5.54e+4 │ 5.54e+4 5.54e+4 ... 5.54e+4 5.54e+4 │ ... │ 5.54e+4 5.54e+4 ... 5.55e+4 5.55e+4 │ 5.55e+4 5.55e+4 ... 5.55e+4 5.55e+4 ││ - ││axis 2│ 5.59e+4 5.59e+4 ... 5.59e+4 5.59e+4 │ 5.59e+4 5.59e+4 ... 5.59e+4 5.59e+4 │ │ 5.59e+4 5.59e+4 ... 5.60e+4 5.60e+4 │ 5.60e+4 5.60e+4 ... 5.60e+4 5.60e+4 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 5.99e+4 5.99e+4 ... 5.99e+4 5.99e+4 │ 5.99e+4 5.99e+4 ... 5.99e+4 5.99e+4 │ │ 6.00e+4 6.00e+4 ... 6.00e+4 6.00e+4 │ 6.00e+4 6.00e+4 ... 6.00e+4 6.00e+4 ││ - ││ │ 6.04e+4 6.04e+4 ... 6.04e+4 6.04e+4 │ 6.04e+4 6.04e+4 ... 6.04e+4 6.04e+4 │ │ 6.05e+4 6.05e+4 ... 6.05e+4 6.05e+4 │ 6.05e+4 6.05e+4 ... 6.05e+4 6.05e+4 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 1 │ 6.09e+4 6.09e+4 ... 6.09e+4 6.09e+4 │ 6.09e+4 6.09e+4 ... 6.10e+4 6.10e+4 │ ... │ 6.10e+4 6.10e+4 ... 6.10e+4 6.10e+4 │ 6.10e+4 6.10e+4 ... 6.10e+4 6.10e+4 ││ - ││axis 2│ 6.14e+4 6.14e+4 ... 6.14e+4 6.14e+4 │ 6.14e+4 6.14e+4 ... 6.15e+4 6.15e+4 │ │ 6.15e+4 6.15e+4 ... 6.15e+4 6.15e+4 │ 6.15e+4 6.15e+4 ... 6.15e+4 6.15e+4 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 6.55e+4 6.55e+4 ... 6.55e+4 6.55e+4 │ 6.55e+4 6.55e+4 ... 6.55e+4 6.55e+4 │ │ 6.55e+4 6.55e+4 ... 6.55e+4 6.55e+4 │ 6.55e+4 6.55e+4 ... 6.55e+4 6.55e+4 ││ - ││ │ 6.60e+4 6.60e+4 ... 6.60e+4 6.60e+4 │ 6.60e+4 6.60e+4 ... 6.60e+4 6.60e+4 │ │ 6.60e+4 6.60e+4 ... 6.60e+4 6.60e+4 │ 6.60e+4 6.60e+4 ... 6.60e+4 6.60e+4 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... │ ... ││ - ││axis 2│ │ │ │ │ ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││8 @ 1 │ 9.97e+4 9.97e+4 ... 9.97e+4 9.98e+4 │ 9.98e+4 9.98e+4 ... 9.98e+4 9.98e+4 │ ... │ 9.98e+4 9.98e+4 ... 9.98e+4 9.98e+4 │ 9.98e+4 9.98e+4 ... 9.98e+4 9.98e+4 ││ - ││axis 2│ 1.00e+5 1.00e+5 ... 1.00e+5 1.00e+5 │ 1.00e+5 1.00e+5 ... 1.00e+5 1.00e+5 │ │ 1.00e+5 1.00e+5 ... 1.00e+5 1.00e+5 │ 1.00e+5 1.00e+5 ... 1.00e+5 1.00e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 ││ - ││ │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 │ 1.04e+5 1.04e+5 ... 1.04e+5 1.04e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││9 @ 1 │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ ... │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 ││ - ││axis 2│ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 │ 1.05e+5 1.05e+5 ... 1.05e+5 1.05e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.09e+5 1.09e+5 ... 1.09e+5 1.09e+5 │ 1.09e+5 1.09e+5 ... 1.09e+5 1.09e+5 │ │ 1.09e+5 1.09e+5 ... 1.09e+5 1.09e+5 │ 1.09e+5 1.09e+5 ... 1.09e+5 1.09e+5 ││ - ││ │ 1.10e+5 1.10e+5 ... 1.10e+5 1.10e+5 │ 1.10e+5 1.10e+5 ... 1.10e+5 1.10e+5 │ │ 1.10e+5 1.10e+5 ... 1.10e+5 1.10e+5 │ 1.10e+5 1.10e+5 ... 1.10e+5 1.10e+5 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ ... │ - ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││4 @ 0 │0 @ 4 │1 @ 4 │~~~~~ │6 @ 4 │7 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5│axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 1 │ 2.21e+5 2.21e+5 ... 2.21e+5 2.21e+5 │ 2.21e+5 2.21e+5 ... 2.21e+5 2.21e+5 │ ... │ 2.21e+5 2.21e+5 ... 2.21e+5 2.21e+5 │ 2.21e+5 2.21e+5 ... 2.21e+5 2.21e+5 ││ - ││axis 2│ 2.22e+5 2.22e+5 ... 2.22e+5 2.22e+5 │ 2.22e+5 2.22e+5 ... 2.22e+5 2.22e+5 │ │ 2.22e+5 2.22e+5 ... 2.22e+5 2.22e+5 │ 2.22e+5 2.22e+5 ... 2.22e+5 2.22e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 ││ - ││ │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 │ 2.26e+5 2.26e+5 ... 2.26e+5 2.26e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 1 │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ ... │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 ││ - ││axis 2│ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 │ 2.27e+5 2.27e+5 ... 2.27e+5 2.27e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.31e+5 2.31e+5 ... 2.31e+5 2.31e+5 │ 2.31e+5 2.31e+5 ... 2.31e+5 2.31e+5 │ │ 2.31e+5 2.31e+5 ... 2.31e+5 2.31e+5 │ 2.31e+5 2.31e+5 ... 2.31e+5 2.31e+5 ││ - ││ │ 2.32e+5 2.32e+5 ... 2.32e+5 2.32e+5 │ 2.32e+5 2.32e+5 ... 2.32e+5 2.32e+5 │ │ 2.32e+5 2.32e+5 ... 2.32e+5 2.32e+5 │ 2.32e+5 2.32e+5 ... 2.32e+5 2.32e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... │ ... ││ - ││axis 2│ │ │ │ │ ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││8 @ 1 │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ ... │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 ││ - ││axis 2│ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 │ 2.66e+5 2.66e+5 ... 2.66e+5 2.66e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.70e+5 2.70e+5 ... 2.70e+5 2.70e+5 │ 2.70e+5 2.70e+5 ... 2.70e+5 2.70e+5 │ │ 2.70e+5 2.70e+5 ... 2.70e+5 2.70e+5 │ 2.70e+5 2.70e+5 ... 2.70e+5 2.70e+5 ││ - ││ │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││9 @ 1 │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ ... │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 │ 2.71e+5 2.71e+5 ... 2.71e+5 2.71e+5 ││ - ││axis 2│ 2.72e+5 2.72e+5 ... 2.72e+5 2.72e+5 │ 2.72e+5 2.72e+5 ... 2.72e+5 2.72e+5 │ │ 2.72e+5 2.72e+5 ... 2.72e+5 2.72e+5 │ 2.72e+5 2.72e+5 ... 2.72e+5 2.72e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 ││ - ││ │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 │ 2.76e+5 2.76e+5 ... 2.76e+5 2.76e+5 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││5 @ 0 │0 @ 4 │1 @ 4 │~~~~~ │6 @ 4 │7 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5│axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 1 │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ ... │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 ││ - ││axis 2│ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 │ 2.77e+5 2.77e+5 ... 2.77e+5 2.77e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.81e+5 2.81e+5 ... 2.81e+5 2.81e+5 │ 2.81e+5 2.81e+5 ... 2.81e+5 2.81e+5 │ │ 2.81e+5 2.81e+5 ... 2.81e+5 2.81e+5 │ 2.81e+5 2.81e+5 ... 2.81e+5 2.81e+5 ││ - ││ │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 1 │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ ... │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 │ 2.82e+5 2.82e+5 ... 2.82e+5 2.82e+5 ││ - ││axis 2│ 2.83e+5 2.83e+5 ... 2.83e+5 2.83e+5 │ 2.83e+5 2.83e+5 ... 2.83e+5 2.83e+5 │ │ 2.83e+5 2.83e+5 ... 2.83e+5 2.83e+5 │ 2.83e+5 2.83e+5 ... 2.83e+5 2.83e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 ││ - ││ │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 │ 2.87e+5 2.87e+5 ... 2.87e+5 2.87e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... │ ... ││ - ││axis 2│ │ │ │ │ ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││8 @ 1 │ 3.21e+5 3.21e+5 ... 3.21e+5 3.21e+5 │ 3.21e+5 3.21e+5 ... 3.21e+5 3.21e+5 │ ... │ 3.21e+5 3.21e+5 ... 3.21e+5 3.21e+5 │ 3.21e+5 3.21e+5 ... 3.21e+5 3.21e+5 ││ - ││axis 2│ 3.22e+5 3.22e+5 ... 3.22e+5 3.22e+5 │ 3.22e+5 3.22e+5 ... 3.22e+5 3.22e+5 │ │ 3.22e+5 3.22e+5 ... 3.22e+5 3.22e+5 │ 3.22e+5 3.22e+5 ... 3.22e+5 3.22e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 ││ - ││ │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 │ 3.26e+5 3.26e+5 ... 3.26e+5 3.26e+5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││9 @ 1 │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ ... │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 ││ - ││axis 2│ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 │ 3.27e+5 3.27e+5 ... 3.27e+5 3.27e+5 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 3.31e+5 3.31e+5 ... 3.31e+5 3.31e+5 │ 3.31e+5 3.31e+5 ... 3.31e+5 3.31e+5 │ │ 3.31e+5 3.31e+5 ... 3.31e+5 3.31e+5 │ 3.31e+5 3.31e+5 ... 3.31e+5 3.31e+5 ││ - ││ │ 3.32e+5 3.32e+5 ... 3.32e+5 3.32e+5 │ 3.32e+5 3.32e+5 ... 3.32e+5 3.32e+5 │ │ 3.32e+5 3.32e+5 ... 3.32e+5 3.32e+5 │ 3.32e+5 3.32e+5 ... 3.32e+5 3.32e+5 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default hoo; (* Disable line wrapping for viewing the output. In VSCode: `View: Toggle Word Wrap`. *) - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[6]: -_hoo shape 0:6|1:10,2:11 │ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┬──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 │~~~~~ │4 @ 0 │5 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2│axis 2 │axis 2 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┼──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││axis 1│ 2.53e+5 7.61e+5 ... 4.82e+6 5.33e+6 │ 5.61e+7 5.66e+7 ... 6.07e+7 6.12e+7 │ ... │ 2.23e+8 2.24e+8 ... 2.28e+8 2.28e+8 │ 2.79e+8 2.80e+8 ... 2.84e+8 2.84e+8 ││ - ││ │ 5.84e+6 6.34e+6 ... 1.04e+7 1.09e+7 │ 6.17e+7 6.22e+7 ... 6.62e+7 6.68e+7 │ │ 2.29e+8 2.29e+8 ... 2.33e+8 2.34e+8 │ 2.85e+8 2.85e+8 ... 2.89e+8 2.90e+8 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 4.49e+7 4.54e+7 ... 4.95e+7 5.00e+7 │ 1.00e+8 1.01e+8 ... 1.05e+8 1.05e+8 │ │ 2.68e+8 2.69e+8 ... 2.73e+8 2.73e+8 │ 3.24e+8 3.24e+8 ... 3.28e+8 3.29e+8 ││ - ││ │ 5.05e+7 5.10e+7 ... 5.51e+7 5.56e+7 │ 1.06e+8 1.06e+8 ... 1.11e+8 1.11e+8 │ │ 2.74e+8 2.74e+8 ... 2.78e+8 2.79e+8 │ 3.29e+8 3.30e+8 ... 3.34e+8 3.35e+8 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┴──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 23 6" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 6) (label ()) (proj_id ((Proj_id 23))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims + ((Dim ((d 7) (label ()) (proj_id ((Proj_id 24))))) + (Dim ((d 8) (label ()) (proj_id ((Proj_id 25))))) + (Dim ((d 9) (label ()) (proj_id ((Proj_id 26))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims + ((Dim ((d 10) (label ()) (proj_id ((Proj_id 27))))) + (Dim ((d 11) (label ()) (proj_id ((Proj_id 28))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name r6x10x11x7x8x9))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 228, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Hello_world_op.(fun) in file "test/hello_world_op.ml", line 596, characters 2-42 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] File "test/einsum_trivia.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/einsum_trivia.ml _build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/einsum_trivia.ml.corrected diff --git a/_build/default/test/einsum_trivia.ml b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/einsum_trivia.ml.corrected index 162aa57..9b93b1d 100644 --- a/_build/default/test/einsum_trivia.ml +++ b/_build/.sandbox/237c9cf88b298df58f289e1cde2b12f7/default/test/einsum_trivia.ml.corrected @@ -26,251 +26,63 @@ let%expect_test "einsum1 permute axes" = let%op ho = hey ++ "b|i->o => o|b->i" in Train.forward_and_forget backend ctx ho; Tensor.print ~with_code:false ~with_grad:false `Default @@ hey; - [%expect - {| - ┌─────────────────────────────────────────────────────────────┐ - │[0]: r2x4x3 shape 0:2|2:3->1:4 │ - │┌──────┬────────────────────────┬───────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 ││ - ││ │axis 2 │axis 2 ││ - │├──────┼────────────────────────┼───────────────────────────┤│ - ││axis 1│ 0.00 1.00 2.00 │ 1.20e+1 1.30e+1 1.40e+1 ││ - ││ │ 3.00 4.00 5.00 │ 1.50e+1 1.60e+1 1.70e+1 ││ - ││ │ 6.00 7.00 8.00 │ 1.80e+1 1.90e+1 2.00e+1 ││ - ││ │ 9.00 1.00e+1 1.10e+1 │ 2.10e+1 2.20e+1 2.30e+1 ││ - │└──────┴────────────────────────┴───────────────────────────┘│ - └─────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ ho; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────┐ - │[1]: =>_ho shape 0:4|2:2->1:3 │ - │┌──────┬───────────────┬───────────────┬───────────────┬──────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 │3 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 │axis 2 ││ - │├──────┼───────────────┼───────────────┼───────────────┼──────────────────┤│ - ││axis 1│ 0.00 1.20e+1 │ 3.00 1.50e+1 │ 6.00 1.80e+1 │ 9.00 2.10e+1 ││ - ││ │ 1.00 1.30e+1 │ 4.00 1.60e+1 │ 7.00 1.90e+1 │ 1.00e+1 2.20e+1 ││ - ││ │ 2.00 1.40e+1 │ 5.00 1.70e+1 │ 8.00 2.00e+1 │ 1.10e+1 2.30e+1 ││ - │└──────┴───────────────┴───────────────┴───────────────┴──────────────────┘│ - └───────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; let hey2 = TDSL.range_of_shape ~batch_dims:[ 2; 3 ] ~input_dims:[ 4; 5 ] ~output_dims:[ 6; 7 ] () in let%op ho2 = hey2 ++ "ab|cd->ef => cf|ae->db" in Train.forward_and_forget backend ctx ho2; Tensor.print ~with_code:false ~with_grad:false `Default @@ hey2; - [%expect - {| - ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[2]: r2x3x6x7x4x5 shape 0:2,1:3|4:4,5:5->2:6,3:7 │ - │┌──────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┐│ - ││0 @ 1 │0 @ 4 │1 @ 4 │2 @ 4 │3 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││0 @ 2 │ 0.00 1.00 2.00 3.00 4.00 │ 5.00 6.00 7.00 8.00 9.00 │ 1.00e+1 1.10e+1 1.20e+1 1.30e+1 1.40e+1 │ 1.50e+1 1.60e+1 1.70e+1 1.80e+1 1.90e+1 ││ - ││axis 3│ 2.00e+1 2.10e+1 2.20e+1 2.30e+1 2.40e+1 │ 2.50e+1 2.60e+1 2.70e+1 2.80e+1 2.90e+1 │ 3.00e+1 3.10e+1 3.20e+1 3.30e+1 3.40e+1 │ 3.50e+1 3.60e+1 3.70e+1 3.80e+1 3.90e+1 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.00e+2 1.01e+2 1.02e+2 1.03e+2 1.04e+2 │ 1.05e+2 1.06e+2 1.07e+2 1.08e+2 1.09e+2 │ 1.10e+2 1.11e+2 1.12e+2 1.13e+2 1.14e+2 │ 1.15e+2 1.16e+2 1.17e+2 1.18e+2 1.19e+2 ││ - ││ │ 1.20e+2 1.21e+2 1.22e+2 1.23e+2 1.24e+2 │ 1.25e+2 1.26e+2 1.27e+2 1.28e+2 1.29e+2 │ 1.30e+2 1.31e+2 1.32e+2 1.33e+2 1.34e+2 │ 1.35e+2 1.36e+2 1.37e+2 1.38e+2 1.39e+2 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││1 @ 2 │ 1.40e+2 1.41e+2 1.42e+2 1.43e+2 1.44e+2 │ 1.45e+2 1.46e+2 1.47e+2 1.48e+2 1.49e+2 │ 1.50e+2 1.51e+2 1.52e+2 1.53e+2 1.54e+2 │ 1.55e+2 1.56e+2 1.57e+2 1.58e+2 1.59e+2 ││ - ││axis 3│ 1.60e+2 1.61e+2 1.62e+2 1.63e+2 1.64e+2 │ 1.65e+2 1.66e+2 1.67e+2 1.68e+2 1.69e+2 │ 1.70e+2 1.71e+2 1.72e+2 1.73e+2 1.74e+2 │ 1.75e+2 1.76e+2 1.77e+2 1.78e+2 1.79e+2 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.40e+2 2.41e+2 2.42e+2 2.43e+2 2.44e+2 │ 2.45e+2 2.46e+2 2.47e+2 2.48e+2 2.49e+2 │ 2.50e+2 2.51e+2 2.52e+2 2.53e+2 2.54e+2 │ 2.55e+2 2.56e+2 2.57e+2 2.58e+2 2.59e+2 ││ - ││ │ 2.60e+2 2.61e+2 2.62e+2 2.63e+2 2.64e+2 │ 2.65e+2 2.66e+2 2.67e+2 2.68e+2 2.69e+2 │ 2.70e+2 2.71e+2 2.72e+2 2.73e+2 2.74e+2 │ 2.75e+2 2.76e+2 2.77e+2 2.78e+2 2.79e+2 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... ││ - ││axis 3│ │ │ │ ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││4 @ 2 │ 5.60e+2 5.61e+2 5.62e+2 5.63e+2 5.64e+2 │ 5.65e+2 5.66e+2 5.67e+2 5.68e+2 5.69e+2 │ 5.70e+2 5.71e+2 5.72e+2 5.73e+2 5.74e+2 │ 5.75e+2 5.76e+2 5.77e+2 5.78e+2 5.79e+2 ││ - ││axis 3│ 5.80e+2 5.81e+2 5.82e+2 5.83e+2 5.84e+2 │ 5.85e+2 5.86e+2 5.87e+2 5.88e+2 5.89e+2 │ 5.90e+2 5.91e+2 5.92e+2 5.93e+2 5.94e+2 │ 5.95e+2 5.96e+2 5.97e+2 5.98e+2 5.99e+2 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 6.60e+2 6.61e+2 6.62e+2 6.63e+2 6.64e+2 │ 6.65e+2 6.66e+2 6.67e+2 6.68e+2 6.69e+2 │ 6.70e+2 6.71e+2 6.72e+2 6.73e+2 6.74e+2 │ 6.75e+2 6.76e+2 6.77e+2 6.78e+2 6.79e+2 ││ - ││ │ 6.80e+2 6.81e+2 6.82e+2 6.83e+2 6.84e+2 │ 6.85e+2 6.86e+2 6.87e+2 6.88e+2 6.89e+2 │ 6.90e+2 6.91e+2 6.92e+2 6.93e+2 6.94e+2 │ 6.95e+2 6.96e+2 6.97e+2 6.98e+2 6.99e+2 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││5 @ 2 │ 7.00e+2 7.01e+2 7.02e+2 7.03e+2 7.04e+2 │ 7.05e+2 7.06e+2 7.07e+2 7.08e+2 7.09e+2 │ 7.10e+2 7.11e+2 7.12e+2 7.13e+2 7.14e+2 │ 7.15e+2 7.16e+2 7.17e+2 7.18e+2 7.19e+2 ││ - ││axis 3│ 7.20e+2 7.21e+2 7.22e+2 7.23e+2 7.24e+2 │ 7.25e+2 7.26e+2 7.27e+2 7.28e+2 7.29e+2 │ 7.30e+2 7.31e+2 7.32e+2 7.33e+2 7.34e+2 │ 7.35e+2 7.36e+2 7.37e+2 7.38e+2 7.39e+2 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 8.00e+2 8.01e+2 8.02e+2 8.03e+2 8.04e+2 │ 8.05e+2 8.06e+2 8.07e+2 8.08e+2 8.09e+2 │ 8.10e+2 8.11e+2 8.12e+2 8.13e+2 8.14e+2 │ 8.15e+2 8.16e+2 8.17e+2 8.18e+2 8.19e+2 ││ - ││ │ 8.20e+2 8.21e+2 8.22e+2 8.23e+2 8.24e+2 │ 8.25e+2 8.26e+2 8.27e+2 8.28e+2 8.29e+2 │ 8.30e+2 8.31e+2 8.32e+2 8.33e+2 8.34e+2 │ 8.35e+2 8.36e+2 8.37e+2 8.38e+2 8.39e+2 ││ - │└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│ - ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┐│ - ││1 @ 1 │0 @ 4 │1 @ 4 │2 @ 4 │3 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││0 @ 2 │ 8.40e+2 8.41e+2 8.42e+2 8.43e+2 8.44e+2 │ 8.45e+2 8.46e+2 8.47e+2 8.48e+2 8.49e+2 │ 8.50e+2 8.51e+2 8.52e+2 8.53e+2 8.54e+2 │ 8.55e+2 8.56e+2 8.57e+2 8.58e+2 8.59e+2 ││ - ││axis 3│ 8.60e+2 8.61e+2 8.62e+2 8.63e+2 8.64e+2 │ 8.65e+2 8.66e+2 8.67e+2 8.68e+2 8.69e+2 │ 8.70e+2 8.71e+2 8.72e+2 8.73e+2 8.74e+2 │ 8.75e+2 8.76e+2 8.77e+2 8.78e+2 8.79e+2 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 9.40e+2 9.41e+2 9.42e+2 9.43e+2 9.44e+2 │ 9.45e+2 9.46e+2 9.47e+2 9.48e+2 9.49e+2 │ 9.50e+2 9.51e+2 9.52e+2 9.53e+2 9.54e+2 │ 9.55e+2 9.56e+2 9.57e+2 9.58e+2 9.59e+2 ││ - ││ │ 9.60e+2 9.61e+2 9.62e+2 9.63e+2 9.64e+2 │ 9.65e+2 9.66e+2 9.67e+2 9.68e+2 9.69e+2 │ 9.70e+2 9.71e+2 9.72e+2 9.73e+2 9.74e+2 │ 9.75e+2 9.76e+2 9.77e+2 9.78e+2 9.79e+2 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││1 @ 2 │ 9.80e+2 9.81e+2 9.82e+2 9.83e+2 9.84e+2 │ 9.85e+2 9.86e+2 9.87e+2 9.88e+2 9.89e+2 │ 9.90e+2 9.91e+2 9.92e+2 9.93e+2 9.94e+2 │ 9.95e+2 9.96e+2 9.97e+2 9.98e+2 9.99e+2 ││ - ││axis 3│ 1.00e+3 1.00e+3 1.00e+3 1.00e+3 1.00e+3 │ 1.00e+3 1.00e+3 1.00e+3 1.00e+3 1.00e+3 │ 1.01e+3 1.01e+3 1.01e+3 1.01e+3 1.01e+3 │ 1.01e+3 1.01e+3 1.01e+3 1.01e+3 1.01e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.08e+3 1.08e+3 1.08e+3 1.08e+3 1.08e+3 │ 1.08e+3 1.08e+3 1.08e+3 1.08e+3 1.08e+3 │ 1.09e+3 1.09e+3 1.09e+3 1.09e+3 1.09e+3 │ 1.09e+3 1.09e+3 1.09e+3 1.09e+3 1.09e+3 ││ - ││ │ 1.10e+3 1.10e+3 1.10e+3 1.10e+3 1.10e+3 │ 1.10e+3 1.10e+3 1.10e+3 1.10e+3 1.10e+3 │ 1.11e+3 1.11e+3 1.11e+3 1.11e+3 1.11e+3 │ 1.11e+3 1.11e+3 1.11e+3 1.11e+3 1.11e+3 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... ││ - ││axis 3│ │ │ │ ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││4 @ 2 │ 1.40e+3 1.40e+3 1.40e+3 1.40e+3 1.40e+3 │ 1.40e+3 1.40e+3 1.40e+3 1.40e+3 1.40e+3 │ 1.41e+3 1.41e+3 1.41e+3 1.41e+3 1.41e+3 │ 1.41e+3 1.41e+3 1.41e+3 1.41e+3 1.41e+3 ││ - ││axis 3│ 1.42e+3 1.42e+3 1.42e+3 1.42e+3 1.42e+3 │ 1.42e+3 1.42e+3 1.42e+3 1.42e+3 1.42e+3 │ 1.43e+3 1.43e+3 1.43e+3 1.43e+3 1.43e+3 │ 1.43e+3 1.43e+3 1.43e+3 1.43e+3 1.43e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.50e+3 1.50e+3 1.50e+3 1.50e+3 1.50e+3 │ 1.50e+3 1.50e+3 1.50e+3 1.50e+3 1.50e+3 │ 1.51e+3 1.51e+3 1.51e+3 1.51e+3 1.51e+3 │ 1.51e+3 1.51e+3 1.51e+3 1.51e+3 1.51e+3 ││ - ││ │ 1.52e+3 1.52e+3 1.52e+3 1.52e+3 1.52e+3 │ 1.52e+3 1.52e+3 1.52e+3 1.52e+3 1.52e+3 │ 1.53e+3 1.53e+3 1.53e+3 1.53e+3 1.53e+3 │ 1.53e+3 1.53e+3 1.53e+3 1.53e+3 1.53e+3 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││5 @ 2 │ 1.54e+3 1.54e+3 1.54e+3 1.54e+3 1.54e+3 │ 1.54e+3 1.54e+3 1.54e+3 1.54e+3 1.54e+3 │ 1.55e+3 1.55e+3 1.55e+3 1.55e+3 1.55e+3 │ 1.55e+3 1.55e+3 1.55e+3 1.55e+3 1.55e+3 ││ - ││axis 3│ 1.56e+3 1.56e+3 1.56e+3 1.56e+3 1.56e+3 │ 1.56e+3 1.56e+3 1.56e+3 1.56e+3 1.56e+3 │ 1.57e+3 1.57e+3 1.57e+3 1.57e+3 1.57e+3 │ 1.57e+3 1.57e+3 1.57e+3 1.57e+3 1.57e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.64e+3 1.64e+3 1.64e+3 1.64e+3 1.64e+3 │ 1.64e+3 1.64e+3 1.64e+3 1.64e+3 1.64e+3 │ 1.65e+3 1.65e+3 1.65e+3 1.65e+3 1.65e+3 │ 1.65e+3 1.65e+3 1.65e+3 1.65e+3 1.65e+3 ││ - ││ │ 1.66e+3 1.66e+3 1.66e+3 1.66e+3 1.66e+3 │ 1.66e+3 1.66e+3 1.66e+3 1.66e+3 1.66e+3 │ 1.67e+3 1.67e+3 1.67e+3 1.67e+3 1.67e+3 │ 1.67e+3 1.67e+3 1.67e+3 1.67e+3 1.67e+3 ││ - │└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│ - ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┬─────────────────────────────────────────────┐│ - ││2 @ 1 │0 @ 4 │1 @ 4 │2 @ 4 │3 @ 4 ││ - ││ │axis 5 │axis 5 │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││0 @ 2 │ 1.68e+3 1.68e+3 1.68e+3 1.68e+3 1.68e+3 │ 1.68e+3 1.68e+3 1.68e+3 1.68e+3 1.68e+3 │ 1.69e+3 1.69e+3 1.69e+3 1.69e+3 1.69e+3 │ 1.69e+3 1.69e+3 1.69e+3 1.69e+3 1.69e+3 ││ - ││axis 3│ 1.70e+3 1.70e+3 1.70e+3 1.70e+3 1.70e+3 │ 1.70e+3 1.70e+3 1.70e+3 1.70e+3 1.70e+3 │ 1.71e+3 1.71e+3 1.71e+3 1.71e+3 1.71e+3 │ 1.71e+3 1.71e+3 1.71e+3 1.71e+3 1.71e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.78e+3 1.78e+3 1.78e+3 1.78e+3 1.78e+3 │ 1.78e+3 1.78e+3 1.78e+3 1.78e+3 1.78e+3 │ 1.79e+3 1.79e+3 1.79e+3 1.79e+3 1.79e+3 │ 1.79e+3 1.79e+3 1.79e+3 1.79e+3 1.79e+3 ││ - ││ │ 1.80e+3 1.80e+3 1.80e+3 1.80e+3 1.80e+3 │ 1.80e+3 1.80e+3 1.80e+3 1.80e+3 1.80e+3 │ 1.81e+3 1.81e+3 1.81e+3 1.81e+3 1.81e+3 │ 1.81e+3 1.81e+3 1.81e+3 1.81e+3 1.81e+3 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││1 @ 2 │ 1.82e+3 1.82e+3 1.82e+3 1.82e+3 1.82e+3 │ 1.82e+3 1.82e+3 1.82e+3 1.82e+3 1.82e+3 │ 1.83e+3 1.83e+3 1.83e+3 1.83e+3 1.83e+3 │ 1.83e+3 1.83e+3 1.83e+3 1.83e+3 1.83e+3 ││ - ││axis 3│ 1.84e+3 1.84e+3 1.84e+3 1.84e+3 1.84e+3 │ 1.84e+3 1.84e+3 1.84e+3 1.84e+3 1.84e+3 │ 1.85e+3 1.85e+3 1.85e+3 1.85e+3 1.85e+3 │ 1.85e+3 1.85e+3 1.85e+3 1.85e+3 1.85e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 1.92e+3 1.92e+3 1.92e+3 1.92e+3 1.92e+3 │ 1.92e+3 1.92e+3 1.92e+3 1.92e+3 1.92e+3 │ 1.93e+3 1.93e+3 1.93e+3 1.93e+3 1.93e+3 │ 1.93e+3 1.93e+3 1.93e+3 1.93e+3 1.93e+3 ││ - ││ │ 1.94e+3 1.94e+3 1.94e+3 1.94e+3 1.94e+3 │ 1.94e+3 1.94e+3 1.94e+3 1.94e+3 1.94e+3 │ 1.95e+3 1.95e+3 1.95e+3 1.95e+3 1.95e+3 │ 1.95e+3 1.95e+3 1.95e+3 1.95e+3 1.95e+3 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││~~~~~ │ ... │ ... │ ... │ ... ││ - ││axis 3│ │ │ │ ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││4 @ 2 │ 2.24e+3 2.24e+3 2.24e+3 2.24e+3 2.24e+3 │ 2.24e+3 2.24e+3 2.24e+3 2.24e+3 2.24e+3 │ 2.25e+3 2.25e+3 2.25e+3 2.25e+3 2.25e+3 │ 2.25e+3 2.25e+3 2.25e+3 2.25e+3 2.25e+3 ││ - ││axis 3│ 2.26e+3 2.26e+3 2.26e+3 2.26e+3 2.26e+3 │ 2.26e+3 2.26e+3 2.26e+3 2.26e+3 2.26e+3 │ 2.27e+3 2.27e+3 2.27e+3 2.27e+3 2.27e+3 │ 2.27e+3 2.27e+3 2.27e+3 2.27e+3 2.27e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.34e+3 2.34e+3 2.34e+3 2.34e+3 2.34e+3 │ 2.34e+3 2.34e+3 2.34e+3 2.34e+3 2.34e+3 │ 2.35e+3 2.35e+3 2.35e+3 2.35e+3 2.35e+3 │ 2.35e+3 2.35e+3 2.35e+3 2.35e+3 2.35e+3 ││ - ││ │ 2.36e+3 2.36e+3 2.36e+3 2.36e+3 2.36e+3 │ 2.36e+3 2.36e+3 2.36e+3 2.36e+3 2.36e+3 │ 2.37e+3 2.37e+3 2.37e+3 2.37e+3 2.37e+3 │ 2.37e+3 2.37e+3 2.37e+3 2.37e+3 2.37e+3 ││ - │├──────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┤│ - ││5 @ 2 │ 2.38e+3 2.38e+3 2.38e+3 2.38e+3 2.38e+3 │ 2.38e+3 2.38e+3 2.38e+3 2.38e+3 2.38e+3 │ 2.39e+3 2.39e+3 2.39e+3 2.39e+3 2.39e+3 │ 2.39e+3 2.39e+3 2.39e+3 2.39e+3 2.39e+3 ││ - ││axis 3│ 2.40e+3 2.40e+3 2.40e+3 2.40e+3 2.40e+3 │ 2.40e+3 2.40e+3 2.40e+3 2.40e+3 2.40e+3 │ 2.41e+3 2.41e+3 2.41e+3 2.41e+3 2.41e+3 │ 2.41e+3 2.41e+3 2.41e+3 2.41e+3 2.41e+3 ││ - ││ │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... │ ... ... ... ... ... ││ - ││ │ 2.48e+3 2.48e+3 2.48e+3 2.48e+3 2.48e+3 │ 2.48e+3 2.48e+3 2.48e+3 2.48e+3 2.48e+3 │ 2.49e+3 2.49e+3 2.49e+3 2.49e+3 2.49e+3 │ 2.49e+3 2.49e+3 2.49e+3 2.49e+3 2.49e+3 ││ - ││ │ 2.50e+3 2.50e+3 2.50e+3 2.50e+3 2.50e+3 │ 2.50e+3 2.50e+3 2.50e+3 2.50e+3 2.50e+3 │ 2.51e+3 2.51e+3 2.51e+3 2.51e+3 2.51e+3 │ 2.51e+3 2.51e+3 2.51e+3 2.51e+3 2.51e+3 ││ - │└──────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┴─────────────────────────────────────────────┘│ - └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ ho2; - [%expect - {| - ┌────────────────────────────────────────────────────────────────────────────────────────────┐ - │[3]: =>_ho2 shape 0:4,1:7|4:2,5:6->2:5,3:3 │ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││0 @ 1 │0 @ 4 │1 @ 4 ││ - ││ │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 2 │ 0.00 1.40e+2 ... 5.60e+2 7.00e+2 │ 2.52e+3 2.66e+3 ... 3.08e+3 3.22e+3 ││ - ││axis 3│ 8.40e+2 9.80e+2 ... 1.40e+3 1.54e+3 │ 3.36e+3 3.50e+3 ... 3.92e+3 4.06e+3 ││ - ││ │ 1.68e+3 1.82e+3 ... 2.24e+3 2.38e+3 │ 4.20e+3 4.34e+3 ... 4.76e+3 4.90e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 2 │ 1.00 1.41e+2 ... 5.61e+2 7.01e+2 │ 2.52e+3 2.66e+3 ... 3.08e+3 3.22e+3 ││ - ││axis 3│ 8.41e+2 9.81e+2 ... 1.40e+3 1.54e+3 │ 3.36e+3 3.50e+3 ... 3.92e+3 4.06e+3 ││ - ││ │ 1.68e+3 1.82e+3 ... 2.24e+3 2.38e+3 │ 4.20e+3 4.34e+3 ... 4.76e+3 4.90e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││2 @ 2 │ 2.00 1.42e+2 ... 5.62e+2 7.02e+2 │ 2.52e+3 2.66e+3 ... 3.08e+3 3.22e+3 ││ - ││axis 3│ 8.42e+2 9.82e+2 ... 1.40e+3 1.54e+3 │ 3.36e+3 3.50e+3 ... 3.92e+3 4.06e+3 ││ - ││ │ 1.68e+3 1.82e+3 ... 2.24e+3 2.38e+3 │ 4.20e+3 4.34e+3 ... 4.76e+3 4.90e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││3 @ 2 │ 3.00 1.43e+2 ... 5.63e+2 7.03e+2 │ 2.52e+3 2.66e+3 ... 3.08e+3 3.22e+3 ││ - ││axis 3│ 8.43e+2 9.83e+2 ... 1.40e+3 1.54e+3 │ 3.36e+3 3.50e+3 ... 3.92e+3 4.06e+3 ││ - ││ │ 1.68e+3 1.82e+3 ... 2.24e+3 2.38e+3 │ 4.20e+3 4.34e+3 ... 4.76e+3 4.90e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││4 @ 2 │ 4.00 1.44e+2 ... 5.64e+2 7.04e+2 │ 2.52e+3 2.66e+3 ... 3.08e+3 3.22e+3 ││ - ││axis 3│ 8.44e+2 9.84e+2 ... 1.40e+3 1.54e+3 │ 3.36e+3 3.50e+3 ... 3.92e+3 4.06e+3 ││ - ││ │ 1.68e+3 1.82e+3 ... 2.24e+3 2.38e+3 │ 4.20e+3 4.34e+3 ... 4.76e+3 4.90e+3 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││1 @ 1 │0 @ 4 │1 @ 4 ││ - ││ │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 2 │ 2.00e+1 1.60e+2 ... 5.80e+2 7.20e+2 │ 2.54e+3 2.68e+3 ... 3.10e+3 3.24e+3 ││ - ││axis 3│ 8.60e+2 1.00e+3 ... 1.42e+3 1.56e+3 │ 3.38e+3 3.52e+3 ... 3.94e+3 4.08e+3 ││ - ││ │ 1.70e+3 1.84e+3 ... 2.26e+3 2.40e+3 │ 4.22e+3 4.36e+3 ... 4.78e+3 4.92e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 2 │ 2.10e+1 1.61e+2 ... 5.81e+2 7.21e+2 │ 2.54e+3 2.68e+3 ... 3.10e+3 3.24e+3 ││ - ││axis 3│ 8.61e+2 1.00e+3 ... 1.42e+3 1.56e+3 │ 3.38e+3 3.52e+3 ... 3.94e+3 4.08e+3 ││ - ││ │ 1.70e+3 1.84e+3 ... 2.26e+3 2.40e+3 │ 4.22e+3 4.36e+3 ... 4.78e+3 4.92e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││2 @ 2 │ 2.20e+1 1.62e+2 ... 5.82e+2 7.22e+2 │ 2.54e+3 2.68e+3 ... 3.10e+3 3.24e+3 ││ - ││axis 3│ 8.62e+2 1.00e+3 ... 1.42e+3 1.56e+3 │ 3.38e+3 3.52e+3 ... 3.94e+3 4.08e+3 ││ - ││ │ 1.70e+3 1.84e+3 ... 2.26e+3 2.40e+3 │ 4.22e+3 4.36e+3 ... 4.78e+3 4.92e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││3 @ 2 │ 2.30e+1 1.63e+2 ... 5.83e+2 7.23e+2 │ 2.54e+3 2.68e+3 ... 3.10e+3 3.24e+3 ││ - ││axis 3│ 8.63e+2 1.00e+3 ... 1.42e+3 1.56e+3 │ 3.38e+3 3.52e+3 ... 3.94e+3 4.08e+3 ││ - ││ │ 1.70e+3 1.84e+3 ... 2.26e+3 2.40e+3 │ 4.22e+3 4.36e+3 ... 4.78e+3 4.92e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││4 @ 2 │ 2.40e+1 1.64e+2 ... 5.84e+2 7.24e+2 │ 2.54e+3 2.68e+3 ... 3.10e+3 3.24e+3 ││ - ││axis 3│ 8.64e+2 1.00e+3 ... 1.42e+3 1.56e+3 │ 3.38e+3 3.52e+3 ... 3.94e+3 4.08e+3 ││ - ││ │ 1.70e+3 1.84e+3 ... 2.26e+3 2.40e+3 │ 4.22e+3 4.36e+3 ... 4.78e+3 4.92e+3 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├────────────────────────────────────────────────────────────────────────────────────────────┤ - │ ... │ - ├────────────────────────────────────────────────────────────────────────────────────────────┤ - │┌──────┬─────────────────────────────────────────┬─────────────────────────────────────────┐│ - ││5 @ 1 │0 @ 4 │1 @ 4 ││ - ││ │axis 5 │axis 5 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││0 @ 2 │ 1.00e+2 2.40e+2 ... 6.60e+2 8.00e+2 │ 2.62e+3 2.76e+3 ... 3.18e+3 3.32e+3 ││ - ││axis 3│ 9.40e+2 1.08e+3 ... 1.50e+3 1.64e+3 │ 3.46e+3 3.60e+3 ... 4.02e+3 4.16e+3 ││ - ││ │ 1.78e+3 1.92e+3 ... 2.34e+3 2.48e+3 │ 4.30e+3 4.44e+3 ... 4.86e+3 5.00e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││1 @ 2 │ 1.01e+2 2.41e+2 ... 6.61e+2 8.01e+2 │ 2.62e+3 2.76e+3 ... 3.18e+3 3.32e+3 ││ - ││axis 3│ 9.41e+2 1.08e+3 ... 1.50e+3 1.64e+3 │ 3.46e+3 3.60e+3 ... 4.02e+3 4.16e+3 ││ - ││ │ 1.78e+3 1.92e+3 ... 2.34e+3 2.48e+3 │ 4.30e+3 4.44e+3 ... 4.86e+3 5.00e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││2 @ 2 │ 1.02e+2 2.42e+2 ... 6.62e+2 8.02e+2 │ 2.62e+3 2.76e+3 ... 3.18e+3 3.32e+3 ││ - ││axis 3│ 9.42e+2 1.08e+3 ... 1.50e+3 1.64e+3 │ 3.46e+3 3.60e+3 ... 4.02e+3 4.16e+3 ││ - ││ │ 1.78e+3 1.92e+3 ... 2.34e+3 2.48e+3 │ 4.30e+3 4.44e+3 ... 4.86e+3 5.00e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││3 @ 2 │ 1.03e+2 2.43e+2 ... 6.63e+2 8.03e+2 │ 2.62e+3 2.76e+3 ... 3.18e+3 3.32e+3 ││ - ││axis 3│ 9.43e+2 1.08e+3 ... 1.50e+3 1.64e+3 │ 3.46e+3 3.60e+3 ... 4.02e+3 4.16e+3 ││ - ││ │ 1.78e+3 1.92e+3 ... 2.34e+3 2.48e+3 │ 4.30e+3 4.44e+3 ... 4.86e+3 5.00e+3 ││ - │├──────┼─────────────────────────────────────────┼─────────────────────────────────────────┤│ - ││4 @ 2 │ 1.04e+2 2.44e+2 ... 6.64e+2 8.04e+2 │ 2.62e+3 2.76e+3 ... 3.18e+3 3.32e+3 ││ - ││axis 3│ 9.44e+2 1.08e+3 ... 1.50e+3 1.64e+3 │ 3.46e+3 3.60e+3 ... 4.02e+3 4.16e+3 ││ - ││ │ 1.78e+3 1.92e+3 ... 2.34e+3 2.48e+3 │ 4.30e+3 4.44e+3 ... 4.86e+3 5.00e+3 ││ - │└──────┴─────────────────────────────────────────┴─────────────────────────────────────────┘│ - ├────────────────────────────────────────────────────────────────────────────────────────────┤ ...TRUNCATED BY DUNE... - └───────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ b; - [%expect - {| - ┌────────────────────────────────┐ - │[1]: r3x4x1 shape 0:3|2:1->1:4 │ - │┌──────┬──────┬──────┬─────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 ││ - ││ │axis 2│axis 2│axis 2 ││ - │├──────┼──────┼──────┼─────────┤│ - ││axis 1│ 0.00 │ 4.00 │ 8.00 ││ - ││ │ 1.00 │ 5.00 │ 9.00 ││ - ││ │ 2.00 │ 6.00 │ 1.00e+1 ││ - ││ │ 3.00 │ 7.00 │ 1.10e+1 ││ - │└──────┴──────┴──────┴─────────┘│ - └────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ c; - [%expect - {| - ┌─────────────────────────────────────────────┐ - │[2]: ;=>_c shape 0:3|1:4 │ - │┌──────┬────────────────────────────────────┐│ - ││ │axis 1 ││ - │├──────┼────────────────────────────────────┤│ - ││axis 0│ 0.00 5.00 1.20e+1 2.10e+1 ││ - ││ │ 4.80e+1 6.50e+1 8.40e+1 1.05e+2 ││ - ││ │ 1.60e+2 1.89e+2 2.20e+2 2.53e+2 ││ - │└──────┴────────────────────────────────────┘│ - └─────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 20 3" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 3) (label ()) (proj_id ((Proj_id 20))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ((Dim ((d 4) (label ()) (proj_id ((Proj_id 21))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 22))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name r3x2x4))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Einsum_trivia.(fun) in file "test/einsum_trivia.ml", line 1371, characters 2-40 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "outer_sum simulating axis concatenation" = Tensor.unsafe_reinitialize (); @@ -1439,178 +679,55 @@ let%expect_test "outer_sum simulating axis concatenation" = Train.set_hosted tk.value; Train.forward_and_forget backend ctx positions; Tensor.print ~with_code:false ~with_grad:false `Default @@ positions; - [%expect - {| - ┌────────────────────────────────┐ - │[9]: ;=>+ shape 0:4,1:5,2:6,3:3 │ - │┌──────┬──────────────────┐ │ - ││0 @ 0 │axis 3 │ │ - │├──────┼──────────────────┤ │ - ││0 @ 1 │ 0.00 0.00 0.00 │ │ - ││axis 2│ 0.00 0.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 0.00 0.00 4.00 │ │ - ││ │ 0.00 0.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││1 @ 1 │ 0.00 1.00 0.00 │ │ - ││axis 2│ 0.00 1.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 0.00 1.00 4.00 │ │ - ││ │ 0.00 1.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││2 @ 1 │ 0.00 2.00 0.00 │ │ - ││axis 2│ 0.00 2.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 0.00 2.00 4.00 │ │ - ││ │ 0.00 2.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││3 @ 1 │ 0.00 3.00 0.00 │ │ - ││axis 2│ 0.00 3.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 0.00 3.00 4.00 │ │ - ││ │ 0.00 3.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││4 @ 1 │ 0.00 4.00 0.00 │ │ - ││axis 2│ 0.00 4.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 0.00 4.00 4.00 │ │ - ││ │ 0.00 4.00 5.00 │ │ - │└──────┴──────────────────┘ │ - ├────────────────────────────────┤ - │┌──────┬──────────────────┐ │ - ││1 @ 0 │axis 3 │ │ - │├──────┼──────────────────┤ │ - ││0 @ 1 │ 1.00 0.00 0.00 │ │ - ││axis 2│ 1.00 0.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 1.00 0.00 4.00 │ │ - ││ │ 1.00 0.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││1 @ 1 │ 1.00 1.00 0.00 │ │ - ││axis 2│ 1.00 1.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 1.00 1.00 4.00 │ │ - ││ │ 1.00 1.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││2 @ 1 │ 1.00 2.00 0.00 │ │ - ││axis 2│ 1.00 2.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 1.00 2.00 4.00 │ │ - ││ │ 1.00 2.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││3 @ 1 │ 1.00 3.00 0.00 │ │ - ││axis 2│ 1.00 3.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 1.00 3.00 4.00 │ │ - ││ │ 1.00 3.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││4 @ 1 │ 1.00 4.00 0.00 │ │ - ││axis 2│ 1.00 4.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 1.00 4.00 4.00 │ │ - ││ │ 1.00 4.00 5.00 │ │ - │└──────┴──────────────────┘ │ - ├────────────────────────────────┤ - │┌──────┬──────────────────┐ │ - ││2 @ 0 │axis 3 │ │ - │├──────┼──────────────────┤ │ - ││0 @ 1 │ 2.00 0.00 0.00 │ │ - ││axis 2│ 2.00 0.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 2.00 0.00 4.00 │ │ - ││ │ 2.00 0.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││1 @ 1 │ 2.00 1.00 0.00 │ │ - ││axis 2│ 2.00 1.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 2.00 1.00 4.00 │ │ - ││ │ 2.00 1.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││2 @ 1 │ 2.00 2.00 0.00 │ │ - ││axis 2│ 2.00 2.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 2.00 2.00 4.00 │ │ - ││ │ 2.00 2.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││3 @ 1 │ 2.00 3.00 0.00 │ │ - ││axis 2│ 2.00 3.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 2.00 3.00 4.00 │ │ - ││ │ 2.00 3.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││4 @ 1 │ 2.00 4.00 0.00 │ │ - ││axis 2│ 2.00 4.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 2.00 4.00 4.00 │ │ - ││ │ 2.00 4.00 5.00 │ │ - │└──────┴──────────────────┘ │ - ├────────────────────────────────┤ - │┌──────┬──────────────────┐ │ - ││3 @ 0 │axis 3 │ │ - │├──────┼──────────────────┤ │ - ││0 @ 1 │ 3.00 0.00 0.00 │ │ - ││axis 2│ 3.00 0.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 3.00 0.00 4.00 │ │ - ││ │ 3.00 0.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││1 @ 1 │ 3.00 1.00 0.00 │ │ - ││axis 2│ 3.00 1.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 3.00 1.00 4.00 │ │ - ││ │ 3.00 1.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││2 @ 1 │ 3.00 2.00 0.00 │ │ - ││axis 2│ 3.00 2.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 3.00 2.00 4.00 │ │ - ││ │ 3.00 2.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││3 @ 1 │ 3.00 3.00 0.00 │ │ - ││axis 2│ 3.00 3.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 3.00 3.00 4.00 │ │ - ││ │ 3.00 3.00 5.00 │ │ - │├──────┼──────────────────┤ │ - ││4 @ 1 │ 3.00 4.00 0.00 │ │ - ││axis 2│ 3.00 4.00 1.00 │ │ - ││ │ ... ... ... │ │ - ││ │ 3.00 4.00 4.00 │ │ - ││ │ 3.00 4.00 5.00 │ │ - │└──────┴──────────────────┘ │ - └────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ ti; - [%expect - {| - ┌───────────────────────────┐ - │[1]: =>_ti shape 0:4,1:3 │ - │┌──────┬──────────────────┐│ - ││ │axis 1 ││ - │├──────┼──────────────────┤│ - ││axis 0│ 0.00 0.00 0.00 ││ - ││ │ 1.00 0.00 0.00 ││ - ││ │ 2.00 0.00 0.00 ││ - ││ │ 3.00 0.00 0.00 ││ - │└──────┴──────────────────┘│ - └───────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ tk; - [%expect - {| - ┌───────────────────────────┐ - │[7]: =>_tk shape 0:6,1:3 │ - │┌──────┬──────────────────┐│ - ││ │axis 1 ││ - │├──────┼──────────────────┤│ - ││axis 0│ 0.00 0.00 0.00 ││ - ││ │ 0.00 0.00 1.00 ││ - ││ │ ... ... ... ││ - ││ │ 0.00 0.00 4.00 ││ - ││ │ 0.00 0.00 5.00 ││ - │└──────┴──────────────────┘│ - └───────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 23 6" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 6) (kind Batch))))) + (input + ((dims ()) (bcast Broadcastable) (id ((sh_id 6) (kind Input))))) + (output + ((dims ((Dim ((d 6) (label ()) (proj_id ((Proj_id 23))))))) + (bcast Broadcastable) (id ((sh_id 6) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 6) + (debug_name n6))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Einsum_trivia.(fun) in file "test/einsum_trivia.ml", line 1440, characters 2-48 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "einsum with a leftmost input axis preserved as output axis" = Tensor.unsafe_reinitialize (); @@ -1633,71 +750,57 @@ let%expect_test "einsum with a leftmost input axis preserved as output axis" = let%op c = a *+ "...|i->1; ...|j...->i => ...|ij" b in Train.forward_and_forget backend ctx c; Tensor.print ~with_code:false ~with_grad:false `Default @@ a; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[0]: r3x2x4_a shape 0:3|2:4->1:2 │ - │┌──────┬────────────────────────┬────────────────────────────────────┬────────────────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 ││ - │├──────┼────────────────────────┼────────────────────────────────────┼────────────────────────────────────┤│ - ││axis 1│ 0.00 1.00 2.00 3.00 │ 8.00 9.00 1.00e+1 1.10e+1 │ 1.60e+1 1.70e+1 1.80e+1 1.90e+1 ││ - ││ │ 4.00 5.00 6.00 7.00 │ 1.20e+1 1.30e+1 1.40e+1 1.50e+1 │ 2.00e+1 2.10e+1 2.20e+1 2.30e+1 ││ - │└──────┴────────────────────────┴────────────────────────────────────┴────────────────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ b; - [%expect - {| - ┌────────────────────────────────────────────────────────────────┐ - │[1]: r3x4x2x3_b shape 0:3|2:2,3:3->1:4 │ - │┌──────┬───────────────────────────┬───────────────────────────┐│ - ││0 @ 0 │0 @ 2 │1 @ 2 ││ - ││ │axis 3 │axis 3 ││ - │├──────┼───────────────────────────┼───────────────────────────┤│ - ││axis 1│ 0.00 1.00 2.00 │ 3.00 4.00 5.00 ││ - ││ │ 6.00 7.00 8.00 │ 9.00 1.00e+1 1.10e+1 ││ - ││ │ 1.20e+1 1.30e+1 1.40e+1 │ 1.50e+1 1.60e+1 1.70e+1 ││ - ││ │ 1.80e+1 1.90e+1 2.00e+1 │ 2.10e+1 2.20e+1 2.30e+1 ││ - │└──────┴───────────────────────────┴───────────────────────────┘│ - ├────────────────────────────────────────────────────────────────┤ - │┌──────┬───────────────────────────┬───────────────────────────┐│ - ││1 @ 0 │0 @ 2 │1 @ 2 ││ - ││ │axis 3 │axis 3 ││ - │├──────┼───────────────────────────┼───────────────────────────┤│ - ││axis 1│ 2.40e+1 2.50e+1 2.60e+1 │ 2.70e+1 2.80e+1 2.90e+1 ││ - ││ │ 3.00e+1 3.10e+1 3.20e+1 │ 3.30e+1 3.40e+1 3.50e+1 ││ - ││ │ 3.60e+1 3.70e+1 3.80e+1 │ 3.90e+1 4.00e+1 4.10e+1 ││ - ││ │ 4.20e+1 4.30e+1 4.40e+1 │ 4.50e+1 4.60e+1 4.70e+1 ││ - │└──────┴───────────────────────────┴───────────────────────────┘│ - ├────────────────────────────────────────────────────────────────┤ - │┌──────┬───────────────────────────┬───────────────────────────┐│ - ││2 @ 0 │0 @ 2 │1 @ 2 ││ - ││ │axis 3 │axis 3 ││ - │├──────┼───────────────────────────┼───────────────────────────┤│ - ││axis 1│ 4.80e+1 4.90e+1 5.00e+1 │ 5.10e+1 5.20e+1 5.30e+1 ││ - ││ │ 5.40e+1 5.50e+1 5.60e+1 │ 5.70e+1 5.80e+1 5.90e+1 ││ - ││ │ 6.00e+1 6.10e+1 6.20e+1 │ 6.30e+1 6.40e+1 6.50e+1 ││ - ││ │ 6.60e+1 6.70e+1 6.80e+1 │ 6.90e+1 7.00e+1 7.10e+1 ││ - │└──────┴───────────────────────────┴───────────────────────────┘│ - └────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ c; - [%expect - {| - ┌─────────────────────────────────────────────────────────────────┐ - │[2]: ;=>_c shape 0:3|1:4,2:2 │ - │┌──────┬──────────────────┬──────────────────┬──────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 ││ - │├──────┼──────────────────┼──────────────────┼──────────────────┤│ - ││axis 1│ 1.20e+1 4.80e+1 │ 9.00e+2 1.00e+3 │ 2.94e+3 3.12e+3 ││ - ││ │ 1.05e+2 1.50e+2 │ 1.20e+3 1.32e+3 │ 3.46e+3 3.65e+3 ││ - ││ │ 2.34e+2 2.88e+2 │ 1.55e+3 1.68e+3 │ 4.02e+3 4.22e+3 ││ - ││ │ 3.99e+2 4.62e+2 │ 1.93e+3 2.07e+3 │ 4.62e+3 4.83e+3 ││ - │└──────┴──────────────────┴──────────────────┴──────────────────┘│ - └─────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 24 3" + ((Shape_mismatch + ((batch + ((dims ((Dim ((d 3) (label ()) (proj_id ((Proj_id 24))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ((Dim ((d 4) (label ()) (proj_id ((Proj_id 25))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 26))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name r3x2x4_a))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Einsum_trivia.(fun) in file "test/einsum_trivia.ml", line 1634, characters 2-40 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] let%expect_test "einsum permuting two leftmost input axes as output axes" = Tensor.unsafe_reinitialize (); @@ -1716,46 +819,52 @@ let%expect_test "einsum permuting two leftmost input axes as output axes" = let%op c = a *+ "i->1; ij...->0 => ...->ji" b in Train.forward_and_forget backend ctx c; Tensor.print ~with_code:false ~with_grad:false `Default @@ a; - [%expect - {| - ┌───────────────────────────┐ - │[0]: r2x2_a shape 1:2->0:2 │ - │┌──────┬────────────┐ │ - ││ │axis 1 │ │ - │├──────┼────────────┤ │ - ││axis 0│ 0.00 1.00 │ │ - ││ │ 2.00 3.00 │ │ - │└──────┴────────────┘ │ - └───────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ b; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[1]: r2x2x3x4_b shape 1:2,2:3,3:4->0:2 │ - │┌──────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┐│ - ││ │0 @ 2 │1 @ 2 │2 @ 2 ││ - ││ │axis 3 │axis 3 │axis 3 ││ - │├──────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┤│ - ││0 @ 1 │ 0.00 1.00 2.00 3.00 │ 4.00 5.00 6.00 7.00 │ 8.00 9.00 1.00e+1 1.10e+1 ││ - ││axis 0│ 2.40e+1 2.50e+1 2.60e+1 2.70e+1 │ 2.80e+1 2.90e+1 3.00e+1 3.10e+1 │ 3.20e+1 3.30e+1 3.40e+1 3.50e+1 ││ - │├──────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┤│ - ││1 @ 1 │ 1.20e+1 1.30e+1 1.40e+1 1.50e+1 │ 1.60e+1 1.70e+1 1.80e+1 1.90e+1 │ 2.00e+1 2.10e+1 2.20e+1 2.30e+1 ││ - ││axis 0│ 3.60e+1 3.70e+1 3.80e+1 3.90e+1 │ 4.00e+1 4.10e+1 4.20e+1 4.30e+1 │ 4.40e+1 4.50e+1 4.60e+1 4.70e+1 ││ - │└──────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}]; + [%expect.unreachable]; Tensor.print ~with_code:false ~with_grad:false `Default @@ c; - [%expect - {| - ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │[2]: ;=>_c shape 2:4->0:3,1:2 │ - │┌──────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┐│ - ││ │0 @ 0 │1 @ 0 │2 @ 0 ││ - ││ │axis 2 │axis 2 │axis 2 ││ - │├──────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┤│ - ││axis 1│ 0.00 2.00 4.00 6.00 │ 8.00 1.00e+1 1.20e+1 1.40e+1 │ 1.60e+1 1.80e+1 2.00e+1 2.20e+1 ││ - ││ │ 3.60e+1 3.90e+1 4.20e+1 4.50e+1 │ 4.80e+1 5.10e+1 5.40e+1 5.70e+1 │ 6.00e+1 6.30e+1 6.60e+1 6.90e+1 ││ - │└──────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┘│ - └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - |}] + [%expect.unreachable] +[@@expect.uncaught_exn {| + (* CR expect_test_collector: This test expectation appears to contain a backtrace. + This is strongly discouraged as backtraces are fragile. + Please change this test to not include a backtrace. *) + (lib/shape.ml.Shape_error + "projection_of_solved_dims: unknown projection: 28 2" + ((Shape_mismatch + ((batch ((dims ()) (bcast Broadcastable) (id ((sh_id 0) (kind Batch))))) + (input + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 27))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Input))))) + (output + ((dims ((Dim ((d 2) (label ()) (proj_id ((Proj_id 28))))))) + (bcast Broadcastable) (id ((sh_id 0) (kind Output))))) + (batch_padding ()) (input_padding ()) (output_padding ()) (id 0) + (debug_name r2x2_a))))) + Raised at Ocannl__Shape.derive_projections in file "lib/shape.ml", line 842, characters 4-70 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ocannl__Tensor.term.op_asn in file "lib/tensor.ml", line 328, characters 20-44 + Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 49, characters 17-27 + Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 56, characters 4-11 + Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml" (inlined), line 78, characters 27-67 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 243, characters 59-70 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 227, characters 17-24 + Called from Ir__Assignments.to_low_level.loop in file "arrayjit/lib/assignments.ml", line 225, characters 66-72 + Called from Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", line 251, characters 2-11 + Re-raised at Ir__Assignments.to_low_level in file "arrayjit/lib/assignments.ml", lines 130-251, characters 29-11 + Called from Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 26-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", line 414, characters 2-43 + Re-raised at Ir__Assignments.lower in file "arrayjit/lib/assignments.ml", lines 412-419, characters 22-75 + Called from Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 193-194, characters 4-45 + Re-raised at Backends.lower_assignments in file "arrayjit/lib/backends.ml", lines 185-194, characters 34-47 + Called from Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", line 356, characters 6-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 355-356, characters 4-61 + Re-raised at Backends.Raise_backend.compile in file "arrayjit/lib/backends.ml", lines 354-362, characters 26-99 + Called from Ocannl__Train.forward_and_ctx in file "lib/train.ml", line 494, characters 37-90 + Re-raised at Ocannl__Train.forward_and_ctx in file "lib/train.ml", lines 488-497, characters 32-17 + Called from Ocannl__Train.forward_and_forget in file "lib/train.ml", line 501, characters 12-75 + Called from Tutorials__Einsum_trivia.(fun) in file "test/einsum_trivia.ml", line 1717, characters 2-40 + Called from Ppx_expect_runtime__Test_block.Configured.dump_backtrace in file "runtime/test_block.ml", line 142, characters 10-28 + |}] "/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1 2025-06-27 07:37.30: Job failed: Failed: Build failed