Git Product home page Git Product logo

pnp's Introduction

Probabilistic Neural Programs

Probabilistic Neural Programming (PNP) is a Scala library for expressing, training and running inference in neural network models that include discrete choices. The enhanced expressivity of PNP is useful for structured prediction, reinforcement learning, and latent variable models.

Probabilistic neural programs have several advantages over computation graph libraries for neural networks, such as TensorFlow:

  • Probabilistic inference is implemented within the library. For example, running a beam search to (approximately) generate the highest-scoring output sequence of a sequence-to-sequence model takes 1 line of code in PNP.
  • Additional training algorithms that require running inference during training are part of the library. This includes learning-to-search algorithms, such as LaSO, reinforcement learning, and training latent variable models.
  • Computation graphs are a subset of probabilistic neural programs. We use DyNet to express neural networks, which provides a rich set of operations and efficient training.

Installation

This library depends on DyNet with the Scala DyNet bindings. See the link for build instructions. After building this library, run the following commands from the pnp root directory:

cd lib
ln -s <PATH_TO_DYNET>/build/contrib/swig/dynet_swigJNI_scala.jar .
ln -s <PATH_TO_DYNET>/build/contrib/swig/dynet_swigJNI_dylib.jar .

That's it! Verify that your installation works by running sbt test in the root directory.

Usage

This section describes how to use probabilistic neural programs to define and train a model. The typical usage has three steps:

  1. Define a model. Models are implemented by writing a function that takes your problem input and outputs Pnp[X] objects. The probabilistic neural program type Pnp[X] represents a function from neural network parameters to probability distributions over values of type X. Each program describes a (possibly infinite) space of executions, each of which returns a value of type X.
  2. Train. Training is performed by passing a list of examples to a Trainer, where each example consists of a Pnp[X] object and a label. Labels are implemented as functions that assign costs to program executions or as conditional distributions over correct executions. Many training algorithms can be used, from loglikelihood to learning-to-search algorithms.
  3. Run the model. A model can be run on a new input by constructing the appropriate Pnp[X] object, then running inference on this object with trained parameters.

These steps are illustrated in detail for a sequence-to-sequence model in Seq2Seq2.scala. For a more complex example, run the GeoQuery semantic parsing experiment.

Defining Probabilistic Neural Programs

Probabilistic neural programs are specified by writing the forward computation of a neural network, using the choose operation to represent discrete choices. Roughly, we can write:

val pnp = for {
  scores1 <- ... some neural net operations ...
  // Make a discrete choice
  x1 <- choose(values, scores1)
  scores2 <- ... more neural net operations, may depend on x1 ...
  ...
  xn <- choose(values, scoresn)
} yield {
  xn
}

pnp then represents a function that takes some neural network parameters and returns a distribution over possible values of xn (which in turn depends on the values of intermediate choices). We evaluate pnp by running inference, which simultaneously runs the forward pass of the network and performs probabilistic inference:

nnParams = ... 
val dist = pnp.beamSearch(10, nnParams)

Choose

The choose operator defines a distribution over a list of values:

val flip: Pnp[Boolean] = choose(Array(true, false), Array(0.5, 0.5))

This snippet creates a probability distribution that returns either true or false with 50% probability. flip has type Pnp[Boolean], which represents a function from neural network parameters to probability distributions over values of type Boolean. (In this case it's just a probability distribution since we haven't referenced any parameters.) Note that flip is not a draw from the distribution, rather, it is the distribution itself. The probability of each choice can be given to choose either in an explicit list (as above) or via an Expression of a neural network.

We compose distributions using for {...} yield {...}:

val twoFlips: Pnp[Boolean] = for {
  x <- flip
  y <- flip
} yield {
  x && y
}

This program returns true if two independent draws from flip both return true. The notation x <- flip can be thought of as drawing a value from flip and assigning it to x. However, we can only use the value within the for/yield block to construct another probability distribution. We can now run inference on this object:

val marginals3 = twoFlips.beamSearch(5)
println(marginals3.marginals().getProbabilityMap)

This prints out the expected probabilities:

{false=0.75, true=0.25}

Neural Networks

Probabilistic neural programs have access to an underlying computation graph that is used to define neural networks:

def mlp(x: FloatVector): Pnp[Boolean] = {
  for {
    // Get the computation graph
    cg <- computationGraph()

    // Get the parameters of a multilayer perceptron by name.
    // The dimensionalities and values of these parameters are 
    // defined in a PnpModel that is passed to inference.
    weights1 <- param("layer1Weights")
    bias1 <- param("layer1Bias")
    weights2 <- param("layer2Weights")

    // Input the feature vector to the computation graph and
    // run the multilayer perceptron to produce scores.
    inputExpression = input(cg.cg, Seq(FEATURE_VECTOR_DIM), x)
    scores = weights2 * tanh((weights1 * inputExpression) + bias1)

     // Choose a label given the scores. Scores is expected to
     // be a 2-element vector, where the first element is the score
     // of true, etc.
     y <- choose(Array(true, false), scores)
  } yield {
    y
  }
}

We can then evaluate the network on an example:

val model = PnpModel.init(true)
// Initialize the network parameters. The values are
// chosen randomly.
model.addParameter("layer1Weights", Seq(HIDDEN_DIM, FEATURE_VECTOR_DIM))
model.addParameter("layer1Bias", Seq(HIDDEN_DIM))
model.addParameter("layer2Weights", Seq(2, HIDDEN_DIM))

// Run the multilayer perceptron on featureVector
val featureVector = new FloatVector(Seq(1.0f, 2.0f, 3.0f))
val dist = mlp(featureVector)
val marginals = dist.beamSearch(2, model)
 
for (x <- marginals.executions) {
  println(x)
}

This prints something like:

[Execution true -0.4261836111545563]
[Execution false -1.058420181274414]

Each execution has a single value that is an output of our program and a score derived from the neural network computation. In this case, the scores are log probabilities, but the scores may have different semantics depending on the way the model is defined and its parameters are trained.

Pnp uses Dynet as the underlying neural network library, which provides a rich set of operations (e.g., LSTMs). See the Dynet documentation for details, along with the documentation for Dynet Scala bindings.

TODO: document usage of RNNBuilders, which have to be used statelessly.

Defining Richer Models

Probabilistic neural programs can be easily composed to construct richer models using for {...} yield {...}. For example, we can define a CRF sequence tagger using the multilayer perceptron above:

def sequenceTag(xs: Seq[FloatVector]): Pnp[List[Boolean]] = {
  xs.foldLeft(Pnp.value(List[Boolean]()))((x, y) => for {
    cur <- mlp(y)
    rest <- x

    cg <- computationGraph()
    _ <- if (rest.length > 0) {
      // Add a factor to the model that scores adjacent labels
      // in the sequence. Here, labelNn runs a neural network
      // whose inputs are cur and the next label, and whose output
      // is a 1-element vector containing the score.
      score(labelNn(cur, rest.head, cg.cg))
    } else {
      value(())
    }
  } yield {
    cur :: rest
  })
}

We can now run this model on a sequence of feature vectors in the same way as the multilayer perceptron:

// Same model as before, but make it globally normalized 
// and add some more parameters for labelNn
model.locallyNormalized = false
model.addLookupParameter("left", 2, Seq(LABEL_DIM))
model.addLookupParameter("right", 2, Seq(LABEL_DIM))

val featureVectors = Seq(new FloatVector(...), new FloatVector(...), new FloatVector(...))
val dist = sequenceTag(featureVectors)
val marginals = dist.beamSearch(5, model)
for (x <- marginals.executions) {
  println(x)
}

This prints something like:

[Execution List(true, true, true) 5.28779661655426]
[Execution List(false, true, true) 1.7529568672180176]
[Execution List(true, true, false) 1.4970757961273193]
[Execution List(true, false, false) -0.007531404495239258]
[Execution List(true, false, true) -0.42748916149139404]

Training

TODO

Inference

TODO

pnp's People

Contributors

jayantk avatar joelgrus avatar kentonmurray avatar oyvindtafjord avatar pdasigi 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

Watchers

 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

pnp's Issues

Add LICENSE file to repository

The build.sbt for this repository refers to the Apache 2.0 license, but there's no LICENSE file. Can you drop LICENSE into the root directory of this repository?

Missing data source for wikitables2 experiment

I'm getting an error due to a URL now resolving in a 404. Any chance you have an alternate URL?


~/pnp (wikitables2*) $ ./experiments/wikitables/scripts/download_data.sh  
URL transformed to HTTPS due to an HSTS policy
--2019-01-01 13:07:40--  https://cs.stanford.edu/~ppasupat/research/h-strict-all-matching-lfs.tar.gz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving cs.stanford.edu (cs.stanford.edu)... 171.64.64.64
Connecting to cs.stanford.edu (cs.stanford.edu)|171.64.64.64|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-01-01 13:07:41 ERROR 404: Not Found.

lack of saver and loader model

[info] Compiling 50 Scala sources and 2 Java sources to /home/dutang/v-gdy/pnp/target/scala-2.11/classes...
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:15: not found: type Model
[error] val model: Model, var locallyNormalized: Boolean) {
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:501: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(config)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:502: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(forwardBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:503: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(backwardBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:504: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(contextBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:505: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(pointerNetInputBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:506: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(pointerNetOutputBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:507: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(labelDict)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:682: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val config = loader.loadObject(classOf[MatchingModelConfig])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:684: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val forwardLstm = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:685: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val backwardLstm = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:686: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val contextualBuilder = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:687: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val pointerNetInputBuilder = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:688: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val pointerNetOutputBuilder = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:690: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val labelDict = loader.loadObject(classOf[IndexedList[String]])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/CompGraph.scala:9: not found: type Model
[error] class CompGraph(val model: Model,
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/CompGraph.scala:23: not found: type Model
[error] def empty(model: Model): CompGraph = {
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:56: value addBoolean is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addBoolean(locallyNormalized)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:58: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(names.size)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:60: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(k)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:64: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(lookupNames.size)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:66: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(k)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:74: not found: type Model
[error] new PnpModel(Map(), Map(), new Model, locallyNormalized)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:78: value loadModel is not a member of edu.cmu.dynet.ModelLoader
[error] val model = loader.loadModel()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:79: value loadBoolean is not a member of edu.cmu.dynet.ModelLoader
[error] val locallyNormalized = loader.loadBoolean()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:81: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val numParams = loader.loadInt()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:84: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val name = loader.loadObject(classOf[String])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:85: value loadParameter is not a member of edu.cmu.dynet.ModelLoader
[error] val param = loader.loadParameter()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:89: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val numLookups = loader.loadInt()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:92: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val name = loader.loadObject(classOf[String])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:93: value loadLookupParameter is not a member of edu.cmu.dynet.ModelLoader
[error] val param = loader.loadLookupParameter()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:675: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(actionSpace)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:676: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(vocab)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:677: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(config)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:678: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(forwardBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:679: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(backwardBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:680: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(actionBuilder)
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:936: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val actionSpace = loader.loadObject(classOf[ActionSpace])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:937: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val vocab = loader.loadObject(classOf[IndexedList[String]])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:938: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val config = loader.loadObject(classOf[SemanticParserConfig])
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:939: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val forwardBuilder = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:940: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val backwardBuilder = loader.loadLstmBuilder()
[error] ^
[error] /home/dutang/v-gdy/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:941: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val actionBuilder = loader.loadLstmBuilder()
[error] ^
[warn] Class javax.annotation.CheckReturnValue not found - continuing with a stub.
[warn] Class javax.annotation.CheckReturnValue not found - continuing with a stub.
[warn] Class javax.annotation.CheckReturnValue not found - continuing with a stub.
[warn] Class javax.annotation.Nullable not found - continuing with a stub.
[warn] Class javax.annotation.Nullable not found - continuing with a stub.
[warn] 5 warnings found
[error] 43 errors found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 13 s, completed Feb 1, 2018 11:01:06 PM

When I run "sbt test", It seems that version of dynet is wrong, can anyone help me?
I have link dynet_swigJNI_scala.jar and dynet_swigJNI_dylib.jar

compilation errors with latest version of dynet.

Hi,

I tried compiling the pnp with latest version of the dynet. Looks like the latest version is incompatable with pnp. The function signatures are not matching. (https://dynet.readthedocs.io/en/latest/optimizers.html) Whats the recommended version of dynet ?

[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/labeling/LabelingDqaCli.scala:123:55: too many arguments (3) for constructor SimpleSGDTrainer: (m: edu.cmu.dynet.ParameterCollection, learningRate: Float)edu.cmu.dynet.SimpleSGDTrainer
[error] val sgd = new SimpleSGDTrainer(model.model, 0.1f, 0.01f)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:506:11: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(config)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:507:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(forwardBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:508:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(backwardBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:509:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(contextBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:510:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(pointerNetInputBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:511:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(pointerNetOutputBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:512:11: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(labelDict)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:15:16: not found: type Model
[error] val model: Model, var locallyNormalized: Boolean) {
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:689:25: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val config = loader.loadObject(classOf[MatchingModelConfig])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:691:30: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val forwardLstm = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:692:31: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val backwardLstm = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:693:36: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val contextualBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:694:41: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val pointerNetInputBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:695:42: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val pointerNetOutputBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/MatchingModel.scala:697:28: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val labelDict = loader.loadObject(classOf[IndexedList[String]])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/TrainMatchingCli.scala:192:65: too many arguments (3) for constructor SimpleSGDTrainer: (m: edu.cmu.dynet.ParameterCollection, learningRate: Float)edu.cmu.dynet.SimpleSGDTrainer
[error] val sgd = new SimpleSGDTrainer(model.model, learningRate, decay)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/dqa/matching/TrainMatchingCli.scala:199:65: too many arguments (3) for constructor SimpleSGDTrainer: (m: edu.cmu.dynet.ParameterCollection, learningRate: Float)edu.cmu.dynet.SimpleSGDTrainer
[error] val sgd = new SimpleSGDTrainer(model.model, learningRate, decay)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/BsoTrainer.scala:181:22: no arguments allowed for nullary method update: ()Unit
[error] trainer.update(1.0f)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/CompGraph.scala:9:28: not found: type Model
[error] class CompGraph(val model: Model,
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/CompGraph.scala:23:20: not found: type Model
[error] def empty(model: Model): CompGraph = {
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/GlobalLoglikelihoodTrainer.scala:48:26: no arguments allowed for nullary method update: ()Unit
[error] trainer.update(1.0f)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/LoglikelihoodTrainer.scala:66:26: no arguments allowed for nullary method update: ()Unit
[error] trainer.update(1.0f)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:56:11: value addBoolean is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addBoolean(locallyNormalized)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:58:11: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(names.size)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:60:13: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(k)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:64:11: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(lookupNames.size)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:66:13: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(k)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:74:36: not found: type Model
[error] new PnpModel(Map(), Map(), new Model, locallyNormalized)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:78:24: value loadModel is not a member of edu.cmu.dynet.ModelLoader
[error] val model = loader.loadModel()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:79:36: value loadBoolean is not a member of edu.cmu.dynet.ModelLoader
[error] val locallyNormalized = loader.loadBoolean()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:81:28: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val numParams = loader.loadInt()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:84:25: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val name = loader.loadObject(classOf[String])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:85:26: value loadParameter is not a member of edu.cmu.dynet.ModelLoader
[error] val param = loader.loadParameter()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:89:29: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val numLookups = loader.loadInt()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:92:25: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val name = loader.loadObject(classOf[String])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/PnpModel.scala:93:26: value loadLookupParameter is not a member of edu.cmu.dynet.ModelLoader
[error] val param = loader.loadLookupParameter()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/examples/Seq2Seq.scala:282:55: too many arguments (3) for constructor SimpleSGDTrainer: (m: edu.cmu.dynet.ParameterCollection, learningRate: Float)edu.cmu.dynet.SimpleSGDTrainer
[error] val sgd = new SimpleSGDTrainer(model.model, 0.1f, 0.01f)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:445:11: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(actionSpace)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:446:11: value addObject is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addObject(vocab)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:447:11: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(inputDim)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:448:11: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(hiddenDim)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:449:11: value addInt is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addInt(maxVars)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:450:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(forwardBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:451:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(backwardBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:452:11: value addLstmBuilder is not a member of edu.cmu.dynet.ModelSaver
[error] saver.addLstmBuilder(actionBuilder)
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:633:30: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val actionSpace = loader.loadObject(classOf[ActionSpace])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:634:24: value loadObject is not a member of edu.cmu.dynet.ModelLoader
[error] val vocab = loader.loadObject(classOf[IndexedList[String]])
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:635:27: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val inputDim = loader.loadInt()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:636:28: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val hiddenDim = loader.loadInt()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:637:26: value loadInt is not a member of edu.cmu.dynet.ModelLoader
[error] val maxVars = loader.loadInt()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:638:33: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val forwardBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:639:34: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val backwardBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/SemanticParser.scala:640:32: value loadLstmBuilder is not a member of edu.cmu.dynet.ModelLoader
[error] val actionBuilder = loader.loadLstmBuilder()
[error] ^
[error] /Users/pulikunt/lib/pnp/src/main/scala/org/allenai/pnp/semparse/TrainSemanticParserCli.scala:150:55: too many arguments (3) for constructor SimpleSGDTrainer: (m: edu.cmu.dynet.ParameterCollection, learningRate: Float)edu.cmu.dynet.SimpleSGDTrainer
[error] val sgd = new SimpleSGDTrainer(model.model, 0.1f, 0.01f)
[error] ^
[error] 55 errors found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 5 s, completed May 5, 2019 12:35:28 AM

sbt test error: model not found

Hi there,

I have installed dynet with swig successfully, but it has some errors when I test it with sbt test in the root of pnp as follows:

yuchenlin@5FKJDB2:/mnt/c/Users/v-yuclin/workspace/pnp$ sbt test
[info] Loading settings from assembly.sbt,plugins.sbt ...
[info] Loading project definition from /mnt/c/Users/v-yuclin/workspace/pnp/project
[info] Updating {file:/mnt/c/Users/v-yuclin/workspace/pnp/project/}pnp-build...
[warn] module not found: me.lessis#bintray-sbt;0.3.0
[warn] ==== typesafe-ivy-releases: tried
[warn] https://repo.typesafe.com/typesafe/ivy-releases/me.lessis/bintray-sbt/scala_2.12/sbt_1.0/0.3.0/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/me.lessis/bintray-sbt/scala_2.12/sbt_1.0/0.3.0/ivys/ivy.xml
[warn] ==== local: tried
[warn] /home/yuchenlin/.ivy2/local/me.lessis/bintray-sbt/scala_2.12/sbt_1.0/0.3.0/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/me/lessis/bintray-sbt_2.12_1.0/0.3.0/bintray-sbt-0.3.0.pom
[warn] ==== local-preloaded-ivy: tried
[warn] /home/yuchenlin/.sbt/preloaded/me.lessis/bintray-sbt/0.3.0/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn] file:////home/yuchenlin/.sbt/preloaded/me/lessis/bintray-sbt_2.12_1.0/0.3.0/bintray-sbt-0.3.0.pom
[warn] ==== bintray-sbt-plugins: tried
[warn] https://dl.bintray.com/eed3si9n/sbt-plugins/me.lessis/bintray-sbt/scala_2.12/sbt_1.0/0.3.0/ivys/ivy.xml
[warn] module not found: org.allenai.plugins#allenai-sbt-plugins;1.4.8
[warn] ==== typesafe-ivy-releases: tried
[warn] https://repo.typesafe.com/typesafe/ivy-releases/org.allenai.plugins/allenai-sbt-plugins/scala_2.12/sbt_1.0/1.4.8/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.allenai.plugins/allenai-sbt-plugins/scala_2.12/sbt_1.0/1.4.8/ivys/ivy.xml
[warn] ==== local: tried
[warn] /home/yuchenlin/.ivy2/local/org.allenai.plugins/allenai-sbt-plugins/scala_2.12/sbt_1.0/1.4.8/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/org/allenai/plugins/allenai-sbt-plugins_2.12_1.0/1.4.8/allenai-sbt-plugins-1.4.8.pom
[warn] ==== local-preloaded-ivy: tried
[warn] /home/yuchenlin/.sbt/preloaded/org.allenai.plugins/allenai-sbt-plugins/1.4.8/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn] file:////home/yuchenlin/.sbt/preloaded/org/allenai/plugins/allenai-sbt-plugins_2.12_1.0/1.4.8/allenai-sbt-plugins-1.4.8.pom
[warn] ==== bintray-sbt-plugins: tried
[warn] https://dl.bintray.com/eed3si9n/sbt-plugins/org.allenai.plugins/allenai-sbt-plugins/scala_2.12/sbt_1.0/1.4.8/ivys/ivy.xml

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.