Giter VIP home page Giter VIP logo

optimus's Introduction

Hi there ๐Ÿ‘‹๐Ÿป I'm Evangelos!

Profile Views

I am a Data Scientist / ML Researcher from Greece ๐Ÿ‡ฌ๐Ÿ‡ท living in Switzerland ๐Ÿ‡จ๐Ÿ‡ญ.

I'm currently working for Pollfish building end-to-end machine learning and data services.

  • ๐ŸŒฑ I'm currently fascinated about Rust.

  • ๐Ÿ’ฌ Ask me about Python, Scala, and Machine Learning.

  • ๐Ÿงฉ Apart from coding and math, I love cooking ๐Ÿฒ and video games ๐ŸŽฎ.

trophy

optimus's People

Contributors

anskarl avatar benlongo avatar cvlas avatar tmbo avatar vagmcs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

optimus's Issues

Change in implicit behavior in 3.0.0 ?

Hi,
I'm sorry to come with a very naive (and stupid?) question.

I'm trying to update to the version 3.0.0 in my project and it seems that the implicit does not work anymore:

implicit val model: MPModel    = MPModel(LPTimeFeasibility.solverLib)
val x = MPFloatVar("x", 100, 200)
add(x >:= 0)
model.add(x >:= 0)

The third line gives error from compilation.

Is this related to scala version ? Or...?

Thanks!

Rafael

P.S. I can run the whole test suite when cloning the repo.

Using division in Expressions

This is not really an issue.

I'd like to user other operators besides *, + and -, is this possible? For instance / or sqrt.

Thanks in advance.

Value positive is not a member of object optimus.optimization.model.MPFloatVar

Hi,

I'm running the code from the example:

`
import optimus.optimization._
import optimus.optimization.enums.SolverLib
import optimus.optimization.model.MPFloatVar

implicit val model: MPModel = MPModel(SolverLib.oJSolver)

// Both variables are positive, that is, bounds are in [0, +inf]
val x = MPFloatVar.positive("x")
val y = MPFloatVar.positive("y")

minimize(-8x - 16y + xx + 4y)
subjectTo(
x + y <:= 5,
x <:= 3
)

start()

println(s"objective: $objectiveValue")
println(s"x = ${x.value} y = ${y.value}")

release()
`

My Scala version is 2.11.12, so according to the Version Matrix I added the following dependencies:

"com.github.vagmcs" %% "optimus" % "3.2.4", "com.github.vagmcs" %% "optimus-solver-oj" % "3.2.4", "com.github.vagmcs" %% "optimus-solver-lp" % "3.2.4"

But I keep getting the error "value positive is not a member of object optimus.optimization.model.MPFloatVar
val y = MPFloatVar.positive("y")". Weirdly enough it only happens for the second variable, if I use inly x there is no problem.

Can you please assist? Thanks in advance!

Trigger log output

When running the program many times, the output of the logo and time may be verbose. How can I close this log output?
Thank you.

Incorrect quadratic expression?

Hi,

When building quadratic objectives in Optimus using the Expression data type, I noticed that sometimes the resulting expression seems to be incorrect. For example, the following code should result in the objective 3 * (x-2*y+3)^2, which expands to 27 + 18 x + 3 x^2 - 36 y - 12 x y + 12 y^2, but optimus gives the result obj = 12.0*x@1*x@1 + -12.0*x@0*x@1 + -54.0*x@1 + 3.0*x@0*x@0 + 27.0*x@0 + 27.0.

implicit val model = MPModel(SolverLib.oJSolver)

val x = MPFloatVar("x")
val y = MPFloatVar("y")
val e = x - 2.0 * y + 3.0
val obj = 3.0 * e * e
println(s"obj = $obj")

Any idea what caused this?

Thanks,
Jiayi

Constant in cost function

I noticed something that is a bit confusing.

Consider the following code:

import optimus.optimization._

object TestOptimus extends App {
  implicit val problem = LQProblem(SolverLib.ojalgo)

  val x = MPFloatVar("x", 0, 10)

  maximize(x + 1)
  add(x <:= 1)

  start()
  println("objective: " + objectiveValue)
  println("x = " + x.value)

  release()
}

The output is:

objective: 1.0 /// I was expecting two, here
x = Some(1.0)

I have questions:

  • Is this reasonable that the constant term is forgotten ?
  • If yes, would it be interesting to prevent user to use constant terms in cost function?

Thanks!

No such method error while instantiating model

Installed the core package through maven, trying to replicate the Mixed Integer programming tutorial. I keep getting the following error when I do

implicit val model = MPModel(SolverLib.oJSolver)
java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

The following imports work fine.

import optimus.optimization._
import optimus.optimization.enums.SolverLib
import optimus.optimization.model.MPFloatVar
import optimus.optimization.model.MPIntVar

I did try installing the oj, lp dependencies from maven but was not able to rectify the issue. Could you please help.

Returning 0.999999 instead of 1 with binary variables

I am running an ILP using gurobi. All the variables are binary ( created using MPIntVar( "...", 0 to 1 ) )
The values are returned as doubles and occasionally I see 0.999999 instead of 1 for variable.value.get
Just minor irritation as I was reading the result using == 1
Perhaps rounding the value for ILP to the nearest possible value is the way to go?

OJSolver Outputs Incorrect Solution For Minimization Problem

Update: This is likely related to the fact that objectiveValue = -(x * y), with x and y both being unknowns, is not a linear nor a quadratic equation. However, if that's in fact the reason, wouldn't there be a way of detecting when the entered equation cannot be minimized because not linear nor quadratic rather than outputting an incorrect solution?


I might be missing something here, but the following:

image

outputs:

image

while I would expect x = 200, y = 170 and objectiveValue = -34,000.

It says the solution state is OPTIMAL but, unless I'm missing something, this is incorrect.

Published version 3.4.0 does not work

Running any of the examples (e.g. https://github.com/vagmcs/Optimus/blob/master/docs/mixed_integer.md) results in an exception:

Exception in thread "main" java.io.FileNotFoundException: /home/vagmcs/Usr/work/dev/Optimus/core/target/scala-2.13/scoverage-data/scoverage.measurements.1 (No such file or directory)
	at java.base/java.io.FileOutputStream.open0(Native Method)
	at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
	at java.base/java.io.FileWriter.<init>(FileWriter.java:113)
	at scoverage.Invoker$.$anonfun$invoked$1(Invoker.scala:55)
Invoker.scala:55
	at scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:454)
HashMap.scala:454
	at scoverage.Invoker$.invoked(Invoker.scala:55)
Invoker.scala:55
	at optimus.optimization.MPModel.<init>(MPModel.scala:36)
MPModel.scala:36

localPublished version with coverageEnabled := false works as expected.

Seems to be related to:
scoverage/sbt-scoverage#84 and scoverage/sbt-scoverage#306

Comparison of constraints and expressions is broken

It depends on the broken equals method of the trove4j hashmap to compare the terms.

Here is a minimal example:

implicit val mpModel: MPModel = MPModel()
val x = MPIntVar("x", 0 to 1)
val y = MPIntVar("y", 0 to 2)

2000 * x == 3000 * y 
res: Boolean = true

java.lang.RuntimeException: OJalgo dependency is missing [CBT build]

I'm using CBT to build this project that uses Optimus; this is the first time I've seen an error like this, and I've used CBT a few times before, but I'm not highly confident that the issue isn't with CBT, or, perhaps both CBT and Optimus doing something out of the ordinary:

java.lang.RuntimeException: OJalgo dependency is missing.                                                                                                                           
        at scala.sys.package$.error(package.scala:27)                                                                                                                               
        at optimus.optimization.SolverFactory$.instantiate(LQModel.scala:57)                                                                                                        
        at optimus.optimization.LQProblem.instantiateSolver(LQModel.scala:70)                                                                                                       
        at optimus.optimization.AbstractMPProblem.solver$lzycompute(AbstractMPModel.scala:200)                                                                                      
        at optimus.optimization.AbstractMPProblem.solver(AbstractMPModel.scala:200)                                                                                                 
        at optimus.optimization.AbstractMPProblem.start(AbstractMPModel.scala:256)                                                                                                  
        at optimus.optimization.package$.start(package.scala:76)                                                                                                                    
        at cobrascales.optimization.OptimusCS$$anonfun$optimusTests$1.apply$mcV$sp(OptimusCS.scala:18)                                                                              
        at cobrascales.TestTry$.apply(TestTry.scala:13)                                                                                                                             
        at cobrascales.optimization.OptimusCS$.optimusTests(OptimusCS.scala:16)                                                                                                     
        at cobrascales.optimization.package$.optimizationTests(package.scala:12)                                                                                                    
        at cobrascales.Main$.main(Main.scala:13)                                                                                                                                    
        at cobrascales.Main.main(Main.scala)                                                                                                                                        
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                                                              
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                                                                                            
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                    
        at java.lang.reflect.Method.invoke(Method.java:498)                                                                                                                         
        at cbt.reflect.Module$$anonfun$typeStaticMethod$1$$anonfun$apply$6.apply(reflect.scala:170)                                                                                 
        at cbt.reflect.Module$$anonfun$findStaticExitMethodOrFail$1$$anonfun$apply$2.apply(reflect.scala:121)                                                                       
        at cbt.reflect.Module$$anonfun$findStaticExitMethodOrFail$1$$anonfun$apply$2.apply(reflect.scala:121)                                                                       
        at cbt.reflect.Module$$anon$1.run(reflect.scala:178)                                                                                                                        
        at cbt.reflect.Module$$anon$1.run(reflect.scala:177)                                                                                                                        
        at cbt.reflect.TrapSystemExit.run(TrapSystemExit.java:15)                                                                                                                   
        at cbt.reflect.Module$class.trapExitCodeOrValue(reflect.scala:176)                                                                                                          
        at cbt.Stage1Lib.trapExitCodeOrValue(Stage1Lib.scala:14)                                                                                                                    
        at cbt.reflect.Module$class.trapExitCode(reflect.scala:185)                                                                                                                 
        at cbt.Stage1Lib.trapExitCode(Stage1Lib.scala:14)                                                                                                                           
        at cbt.reflect.Module$$anonfun$findStaticExitMethodOrFail$1.apply(reflect.scala:121)                                                                                        
        at cbt.reflect.Module$$anonfun$findStaticExitMethodOrFail$1.apply(reflect.scala:121)                                                                                        
        at cbt.reflect.Module$$anonfun$getMain$1.apply(reflect.scala:70)                                                                                                            
        at cbt.reflect.Module$$anonfun$getMain$1.apply(reflect.scala:70)                                                                                                            
        at cbt.reflect.StaticMethod.apply(StaticMethod.scala:4)                                                                                                                     
        at cbt.DependencyImplementation$class.runMain(resolver.scala:82)                                                                                                            
        at cobrascales_build.test.Build.cbt$BaseBuild$$super$runMain(build.scala:3)                                                                                                 
        at cbt.BaseBuild$class.runMain(BasicBuild.scala:370)                                                                                                                        
        at cobrascales_build.test.Build.runMain(build.scala:3)                                                                                                                      
        at cbt.DependencyImplementation$class.runMain(resolver.scala:85)                                                                                                            
        at cobrascales_build.test.Build.runMain(build.scala:3)                                                                                                                      
        at cbt.BaseBuild$class.run(BasicBuild.scala:217)                                                                                                                            
        at cobrascales_build.test.Build.run(build.scala:3)                                                                                                                          
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                                                              
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                                                                                            
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                    
        at java.lang.reflect.Method.invoke(Method.java:498)                                                                                                                         
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1$$anonfun$apply$9$$anonfun$apply$11$$anonfun$apply$12.apply(Lib.scala:155)                                                       
        at cbt.reflect.Module$$anon$1.run(reflect.scala:178)                                                                                                                        
        at cbt.reflect.Module$$anon$1.run(reflect.scala:177)                                                                                                                        
        at cbt.reflect.TrapSystemExit.run(TrapSystemExit.java:15)                                                                                                                   
        at cbt.reflect.Module$class.trapExitCodeOrValue(reflect.scala:176)                                                                                                          
        at cbt.Stage1Lib.trapExitCodeOrValue(Stage1Lib.scala:14)                                                                                                                    
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1$$anonfun$apply$9$$anonfun$apply$11.apply(Lib.scala:155)                                                                         
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1$$anonfun$apply$9$$anonfun$apply$11.apply(Lib.scala:153)                                                                         
        at scala.Option.map(Option.scala:146)                                                                                                                                       
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1$$anonfun$apply$9.apply(Lib.scala:153)                                                                                           
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1$$anonfun$apply$9.apply(Lib.scala:150)                                                                                           
        at scala.Option.map(Option.scala:146)                                                                                                                                       
        at cbt.Lib$$anonfun$cbt$Lib$$callInternal$1.apply(Lib.scala:150)                                                                                                            
        at cbt.Lib$$anonfun$3.cbt$Lib$$anonfun$$g$1(Lib.scala:103)                                                                                                                  
        at cbt.Lib$$anonfun$3$$anonfun$apply$5.apply(Lib.scala:105)                                                                                                                 
        at cbt.Lib.cbt$Lib$$callInternal(Lib.scala:175)                                                                                                                             
        at cbt.Lib.getReflective(Lib.scala:143)                                                                                                                                     
        at cbt.Lib.callReflective(Lib.scala:106)                                                                                                                                    
        at cbt.Stage2$.run(Stage2.scala:35)                                                                                                                                         
        at cbt.Stage2.run(Stage2.scala)                                                                                                                                             
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                                                              
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                                                                                            
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                    
        at java.lang.reflect.Method.invoke(Method.java:498)                                                                                                                         
        at cbt.Stage1$.run(Stage1.scala:210)                                                                                                                                        
        at cbt.Stage1.run(Stage1.scala)                                                                                                                                             
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                                                              
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                                                                                            
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                    
        at java.lang.reflect.Method.invoke(Method.java:498)                                                                                                                         
        at cbt.NailgunLauncher.main(NailgunLauncher.java:123)                                            

I can verify I saw it download ojalgo dependencies once I added the appropriate solver dependencies:

$ cbt run                                                                                                                                                                           
(Note: nailgun not found. It makes CBT faster! Try 'brew install nailgun' or 'apt-get install nailgun'.)                                                                            
(Note: nc not found. It will make slightly startup faster.)                                                                                                                         
Compiling to /home/brandon/workspace/CobraScales/build/target/scala-2.11/classes                                                                                                    
[info] Compiling 1 Scala source to /home/brandon/workspace/CobraScales/build/target/scala-2.11/classes...                                                                           
[info] Compile success at Feb 25, 2018 4:47:28 PM [2.259s]                                                                                                                          
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-oj_2.11/2.1.0/optimus-solver-oj_2.11-2.1.0.pom.sha1                                                     
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-oj_2.11/2.1.0/optimus-solver-oj_2.11-2.1.0.pom                                                          
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-gurobi_2.11/2.1.0/optimus-solver-gurobi_2.11-2.1.0.pom.sha1                                             
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-gurobi_2.11/2.1.0/optimus-solver-gurobi_2.11-2.1.0.pom                                                  
downloading https://repo1.maven.org/maven2/org/ojalgo/ojalgo/41.0.0/ojalgo-41.0.0.pom.sha1                                                                                          
downloading https://repo1.maven.org/maven2/org/ojalgo/ojalgo/41.0.0/ojalgo-41.0.0.pom                                                                                               
downloading https://repo1.maven.org/maven2/org/ojalgo/ojalgo/41.0.0/ojalgo-41.0.0.jar.sha1                                                                                          
downloading https://repo1.maven.org/maven2/org/ojalgo/ojalgo/41.0.0/ojalgo-41.0.0.jar                                                                                               
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-gurobi_2.11/2.1.0/optimus-solver-gurobi_2.11-2.1.0.jar.sha1                                             
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-gurobi_2.11/2.1.0/optimus-solver-gurobi_2.11-2.1.0.jar                                                  
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-oj_2.11/2.1.0/optimus-solver-oj_2.11-2.1.0.jar.sha1                                                     
downloading https://repo1.maven.org/maven2/com/github/vagmcs/optimus-solver-oj_2.11/2.1.0/optimus-solver-oj_2.11-2.1.0.jar                                                          
Compiling to /home/brandon/workspace/CobraScales/target/scala-2.11/classes     

** To reproduce **

  1. Clone CBT, and add /path/to/cbt to the PATH, or call /path/to/cbt/cbt directly below.
  2. Clone the repo (fairly tiny)
  3. cd to CobraScales/test
  4. run cbt run

Binary Variable returning value 0.502....

implicit val problem = LQProblem(SolverLib.ojalgo)
// Data (filled randomly)
val numI = 5
val I = 0 until numI
val numJ = 5
val J = 0 until numJ
var q = Array.tabulate(numI)(x=>(x+1)0.2)
var w = Array.tabulate(numI)(_0.1)
var to = Array.tabulate(numI,numJ)((x,y)=>x+y)
var r = Array.tabulate(numI,numJ)((x,y)=>0.1
x+0.2
y)
var c = Array.tabulate(numI,numJ)((x,y)=>x+2*y)
var B = 50
var T = Array.tabulate(numJ)(x => (x+2)*3)
var M = 1000

//Variables
val x = Array.tabulate(numI,numJ)((i,j) => MPIntVar(s"x($i,$j)", 0 to 1))
val y = Array.tabulate(numI)(i=>MPFloatVar(s"y$i"))
val z = Array.tabulate(numI)(i=>MPIntVar(s"z$i", 0 to 1))

// Optimal Function
maximize(sum(I,J){ (i,j) => w(i)*y(i) })

// Constraints
for ( j <- J ) {
add(sum(I)(i => to(i)(j)x(i)(j))<:=T(j))
}
for ( i <- I ) {
add(y(i) <:= q(i) + M
z(i))
add(y(i) <:= sum(J)(j => c(i)(j)x(i)(j)) + M(1-z(i)))
add(sum(J)(j => x(i)(j)) <:= z(i))
}
add(sum(I,J){(i,j) => c(i)(j)*x(i)(j)} <:= B)

The above code has x and z as binary variables and I am getting values of 0.502 and 1

Warm start

Hello,

Is there a way to warm start a MIP model with Optimus when using LPSolve?

Thank you very much
Best
Iliya

ojSolver: Time abort not working in case of feasible state

I found out that in case of long optimization the solver can ignore the time_abort set here

underlyingSolver.options.time_abort = limit

this is mainly due to this

https://github.com/optimatika/ojAlgo/blob/9b604f2639280fd42a31a89f6c895059c7d22447/src/org/ojalgo/optimisation/GenericSolver.java#L335

if the underling solver is in feasible state the optimization will continue.
As Optimus provides only time_abort the solver do not stop.
A solution we are using is to set both the time_abort and time_suffice properties.
Example of the proposed solution :

https://github.com/danoliv/Optimus/blob/31c3c77312c75393bed7acf919f7330bc2822fb0/solver-oj/src/main/scala/optimus/optimization/oJSolver.scala#L247

Quadratic objective function + integer variable constraints?

Hi @vagmcs,

First, thanks for all your work developing and maintaining this library. It's been great to use so far.

I'm having a problem where it's not clear how to define a quadratic objective function where the variables have integer constraints.

Here is a small example:

import optimus.algebra._
import optimus.optimization._

object QuadraticExperriment{
  def main(args: Array[String]): Unit = {
    implicit val problem = MIProblem(SolverLib.ojalgo)

    val x = MPIntVar("x", 0 to 1000)
    minimize(x*x - x + 0.25)
    start()
    release()
    println("x = " + x.value)
  }
}

The result from running this is:

Solution status is Optimal
x = Some(0.5)

... but x was specified as an MPIntVar (which should constrain it to be an integer?).

Alternatively, can the MIProblem type handle quadratic objective functions? We tried a small experiment, and it seemed to work, but for our larger code it seemed to run forever and not terminate.

Problem solving models sequentially (Gurobi bronze license)

I have Gurobi bronze license, which does not permit simultaneous usage (see http://www.gurobi.com/products/licensing-pricing/licensing-overview).

If I try to solve multiple models sequentially within context of the same sbt run:

  1. For the first model everything works fine, the Gurobi job runs and returns a result.
  2. When the subsequent model is about to be solved, following error is thrown:
Thrown: gurobi.GRBException: Job queueing feature is disabled
gurobi.GRBEnv.<init>(GRBEnv.java:47)
gurobi.GRBEnv.<init>(GRBEnv.java:32)
optimus.optimization.Gurobi.<init>(Gurobi.scala:32)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
java.lang.Class.newInstance(Class.java:442)
optimus.optimization.SolverFactory$.instantiate(SolverFactory.scala:40)
optimus.optimization.MPModel.solver$lzycompute(MPModel.scala:43)
optimus.optimization.MPModel.solver(MPModel.scala:43)
optimus.optimization.MPModel.start(MPModel.scala:124)

My workflow for each model is:

model = MPModel(...)

// setup the model

model.start(...)
model.release()

It feels like this might be caused by somehow incomplete cleanup after the first computation finishes. In fact, the log

Compute Server job ID: 9672bbe6-fd51-4f42-9c91-d40b275c4d7e
Capacity available on 'ip-172-31-18-66' - connecting...
Established HTTPS encrypted connection
[INFO ]:
    _________                   ______ _____
    __  ____/___  _________________  /____(_)
    _  / __ _  / / /_  ___/  __ \_  __ \_  /
    / /_/ / / /_/ /_  /   / /_/ /  /_/ /  /
    \____/  \__._/ /_/    \____//_____//_/

appears only for the first model, and not the second.

Running two models after each other by separately calling sbt run does not exhibit the problem.

I'm using Optimus 3.1.0.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.