本文整理汇总了Java中org.deeplearning4j.nn.graph.ComputationGraph类的典型用法代码示例。如果您正苦于以下问题:Java ComputationGraph类的具体用法?Java ComputationGraph怎么用?Java ComputationGraph使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ComputationGraph类属于org.deeplearning4j.nn.graph包,在下文中一共展示了ComputationGraph类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getOutput
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
private INDArray getOutput(InputStream isModel, INDArray image) {
org.deeplearning4j.nn.api.Model dl4jModel;
try {
// won't use the model guesser at the moment because it is trying to load a keras model?
// dl4jModel = ModelGuesser.loadModelGuess(isModel);
dl4jModel = loadModel(isModel);
} catch (Exception e) {
throw new IllegalArgumentException("Not able to load model.", e);
}
if(dl4jModel instanceof MultiLayerNetwork) {
MultiLayerNetwork multiLayerNetwork = (MultiLayerNetwork) dl4jModel;
multiLayerNetwork.init();
return multiLayerNetwork.output(image);
} else {
ComputationGraph graph = (ComputationGraph) dl4jModel;
graph.init();
return graph.output(image)[0];
}
}
示例2: testListenersGraph
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Test
public void testListenersGraph() {
TestListener.clearCounts();
ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder().graphBuilder()
.addInputs("in").addLayer("0",
new OutputLayer.Builder(LossFunctions.LossFunction.MSE).nIn(10).nOut(10)
.activation(Activation.TANH).build(),
"in")
.setOutputs("0").build();
ComputationGraph model = new ComputationGraph(conf);
model.init();
testListenersForModel(model, Collections.singletonList(new TestListener()));
}
示例3: testCustomLayerImport
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
public void testCustomLayerImport() throws Exception {
// file paths
String kerasWeightsAndConfigUrl = "http://blob.deeplearning4j.org/models/googlenet_keras_weightsandconfig.h5";
File cachedKerasFile = new File(System.getProperty("java.io.tmpdir"), "googlenet_keras_weightsandconfig.h5");
String outputPath = System.getProperty("java.io.tmpdir") + "/googlenet_dl4j_inference.zip";
KerasLayer.registerCustomLayer("PoolHelper", KerasPoolHelper.class);
KerasLayer.registerCustomLayer("LRN", KerasLRN.class);
// download file
if (!cachedKerasFile.exists()) {
log.info("Downloading model to " + cachedKerasFile.toString());
FileUtils.copyURLToFile(new URL(kerasWeightsAndConfigUrl), cachedKerasFile);
cachedKerasFile.deleteOnExit();
}
org.deeplearning4j.nn.api.Model importedModel =
KerasModelImport.importKerasModelAndWeights(cachedKerasFile.getAbsolutePath());
ModelSerializer.writeModel(importedModel, outputPath, false);
ComputationGraph serializedModel = ModelSerializer.restoreComputationGraph(outputPath);
log.info(serializedModel.summary());
}
示例4: checkScopesTestCGAS
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Test
public void checkScopesTestCGAS() throws Exception {
ComputationGraph c = createNet();
for(WorkspaceMode wm : new WorkspaceMode[]{WorkspaceMode.SEPARATE, WorkspaceMode.SINGLE}) {
log.info("Starting test: {}", wm);
c.getConfiguration().setTrainingWorkspaceMode(wm);
c.getConfiguration().setInferenceWorkspaceMode(wm);
INDArray f = Nd4j.rand(new int[]{8, 1, 28, 28});
INDArray l = Nd4j.rand(8, 10);
c.setInputs(f);
c.setLabels(l);
c.computeGradientAndScore();
}
}
示例5: init
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Override
public ComputationGraph init() {
int embeddingSize = 128;
ComputationGraphConfiguration.GraphBuilder graph = graphBuilder("input1");
graph.addInputs("input1").setInputTypes(InputType.convolutional(inputShape[2], inputShape[1], inputShape[0]))
// Logits
.addLayer("bottleneck", new DenseLayer.Builder().nIn(5376).nOut(embeddingSize).build(),
"avgpool")
// Embeddings
.addVertex("embeddings", new L2NormalizeVertex(new int[] {1}, 1e-10), "bottleneck")
// Output
.addLayer("outputLayer",
new CenterLossOutputLayer.Builder()
.lossFunction(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
.activation(Activation.SOFTMAX).alpha(0.9).lambda(1e-4)
.nIn(embeddingSize).nOut(numClasses).build(),
"embeddings")
.setOutputs("outputLayer").backprop(true).pretrain(false);
ComputationGraphConfiguration conf = graph.build();
ComputationGraph model = new ComputationGraph(conf);
model.init();
return model;
}
示例6: getVaeLayer
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Override
public VariationalAutoencoder getVaeLayer() {
ComputationGraph network =
new ComputationGraph(ComputationGraphConfiguration.fromJson((String) jsonConfig.getValue()));
network.init();
INDArray val = ((INDArray) params.value()).unsafeDuplication();
if (val.length() != network.numParams(false))
throw new IllegalStateException(
"Network did not have same number of parameters as the broadcasted set parameters");
network.setParams(val);
Layer l = network.getLayer(0);
if (!(l instanceof VariationalAutoencoder)) {
throw new RuntimeException(
"Cannot use CGVaeReconstructionErrorWithKeyFunction on network that doesn't have a VAE "
+ "layer as layer 0. Layer type: " + l.getClass());
}
return (VariationalAutoencoder) l;
}
示例7: testRnnTimeStepWithPreprocessorGraph
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Test
public void testRnnTimeStepWithPreprocessorGraph() {
ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder()
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.graphBuilder().addInputs("in")
.addLayer("0", new org.deeplearning4j.nn.conf.layers.GravesLSTM.Builder().nIn(10).nOut(10)
.activation(Activation.TANH).build(), "in")
.addLayer("1", new org.deeplearning4j.nn.conf.layers.GravesLSTM.Builder().nIn(10).nOut(10)
.activation(Activation.TANH).build(), "0")
.addLayer("2", new RnnOutputLayer.Builder(LossFunctions.LossFunction.MCXENT)
.activation(Activation.SOFTMAX).nIn(10).nOut(10).build(), "1")
.setOutputs("2").inputPreProcessor("0", new FeedForwardToRnnPreProcessor()).pretrain(false)
.backprop(true).build();
ComputationGraph net = new ComputationGraph(conf);
net.init();
INDArray in = Nd4j.rand(1, 10);
net.rnnTimeStep(in);
}
示例8: testMNISTConfig
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Test
@Ignore //Should be run manually
public void testMNISTConfig() throws Exception {
int batchSize = 64; // Test batch size
DataSetIterator mnistTrain = new MnistDataSetIterator(batchSize, true, 12345);
ComputationGraph net = getCNNMnistConfig();
net.init();
net.setListeners(new ScoreIterationListener(1));
for (int i = 0; i < 50; i++) {
net.fit(mnistTrain.next());
Thread.sleep(1000);
}
Thread.sleep(100000);
}
示例9: getOriginalGraph
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
public static ComputationGraph getOriginalGraph(int seed){
ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder()
.seed(seed)
.weightInit(WeightInit.XAVIER)
.activation(Activation.TANH)
.convolutionMode(ConvolutionMode.Same)
.updater(new Sgd(0.3))
.graphBuilder()
.addInputs("in")
.layer("0", new ConvolutionLayer.Builder().nOut(3).kernelSize(2,2).stride(1,1).build(), "in")
.layer("1", new SubsamplingLayer.Builder().kernelSize(2,2).stride(1,1).build(), "0")
.layer("2", new ConvolutionLayer.Builder().nIn(3).nOut(3).kernelSize(2,2).stride(1,1).build(), "1")
.layer("3", new DenseLayer.Builder().nOut(64).build(), "2")
.layer("4", new DenseLayer.Builder().nIn(64).nOut(64).build(), "3")
.layer("5", new OutputLayer.Builder().nIn(64).nOut(10).lossFunction(LossFunctions.LossFunction.MSE).build(), "4")
.setOutputs("5")
.setInputTypes(InputType.convolutionalFlat(28,28,1))
.build();
ComputationGraph net = new ComputationGraph(conf);
net.init();
return net;
}
示例10: testCompGraphNullLayer
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Test
public void testCompGraphNullLayer() {
ComputationGraphConfiguration.GraphBuilder gb = new NeuralNetConfiguration.Builder()
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).updater(new Sgd(0.01))
.seed(42).miniBatch(false).l1(0.2).l2(0.2)
/* Graph Builder */
.updater(Updater.RMSPROP).graphBuilder().addInputs("in")
.addLayer("L" + 1,
new GravesLSTM.Builder().nIn(20).updater(Updater.RMSPROP).nOut(10)
.weightInit(WeightInit.XAVIER)
.dropOut(0.4).l1(0.3).activation(Activation.SIGMOID).build(),
"in")
.addLayer("output",
new RnnOutputLayer.Builder().nIn(20).nOut(10).activation(Activation.SOFTMAX)
.weightInit(WeightInit.RELU_UNIFORM).build(),
"L" + 1)
.setOutputs("output");
ComputationGraphConfiguration conf = gb.build();
ComputationGraph cg = new ComputationGraph(conf);
cg.init();
}
示例11: buildInfo
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
private void buildInfo() {
String modelName = "";
String when = LocalTime.now().toString();
if(model instanceof ComputationGraph) {
modelName = "Computation Graph";
}
if(model instanceof MultiLayerNetwork) {
modelName = "MultiLayer Network";
}
info = modelName + " loaded at " + when;
}
示例12: outputForImageFile
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
public String outputForImageFile(File file, int h, int w, int channels) throws IOException {
NativeImageLoader loader = new NativeImageLoader(h, w, channels);
INDArray img1 = loader.asMatrix(file);
if (model instanceof ComputationGraph) {
((ComputationGraph) model).output(img1);
} else if (model instanceof MultiLayerNetwork) {
((MultiLayerNetwork) model).output(img1);
}
activationsCache.clear();
return null;
}
示例13: getLayers
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
private Layer[] getLayers() {
if (model instanceof ComputationGraph) {
return ((ComputationGraph) model).getLayers();
} else if (model instanceof MultiLayerNetwork) {
return ((MultiLayerNetwork) model).getLayers();
}
// should never get here
return null;
}
示例14: evaluate
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
/**
* Evaluate a model and check if the training should continue. Returns false if the score has not
* improved for the given number of epochs. Else true
*
* @param model Model to be evaluated against the validation set
* @return If training should continue or not
*/
public boolean evaluate(ComputationGraph model) {
try {
// Do not evaluate if set to zero
if (maxEpochsNoImprovement == 0) {
return true;
}
// If validation dataset is empty, do not evaluate and just continue
if (!valDataSetIterator.hasNext()) {
return true;
}
double score = Utils.computeScore(model, valDataSetIterator);
if (score < lastBestScore) {
resetEpochCounter();
lastBestScore = score;
return true;
} else {
countEpochsNoImprovement++;
return countEpochsNoImprovement < maxEpochsNoImprovement;
}
} catch (Exception e) {
log.error("Could not evaluate early stopping. Continuing training " + "process", e);
return true;
} finally {
valDataSetIterator.reset();
}
}
示例15: init
import org.deeplearning4j.nn.graph.ComputationGraph; //导入依赖的package包/类
@Override
public ComputationGraph init(int numLabels, long seed, int[][] shape) {
org.deeplearning4j.zoo.model.VGG19 net =
new org.deeplearning4j.zoo.model.VGG19(numLabels, seed, 1);
net.setInputShape(shape);
org.deeplearning4j.nn.conf.MultiLayerConfiguration conf = net.conf();
return mlpToCG(conf, shape);
}