org.apache.giraph.graph.Vertex.setValue()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(11.3k)|赞(0)|评价(0)|浏览(123)

本文整理了Java中org.apache.giraph.graph.Vertex.setValue()方法的一些代码示例,展示了Vertex.setValue()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Vertex.setValue()方法的具体详情如下:
包路径:org.apache.giraph.graph.Vertex
类名称:Vertex
方法名:setValue

Vertex.setValue介绍

[英]Set the vertex data (immediately visible in the computation)
[中]设置顶点数据(在计算中立即可见)

代码示例

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<LongWritable, NullWritable, NullWritable> vertex,
  3. Iterable<Writable> messages) throws IOException {
  4. vertex.setValue(NullWritable.get());
  5. }
  6. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<WritableComparable, Writable, Writable> vertex,
  3. Iterable<WritableComparable> messages) throws IOException {
  4. int count = 0;
  5. for (WritableComparable msg : messages) {
  6. // If this vertex has a neighbor with this ID, then this means it
  7. // participates in a triangle.
  8. if (vertex.getEdgeValue(msg)!=null) {
  9. count++;
  10. }
  11. }
  12. if (count>0) {
  13. vertex.setValue(new IntWritable(count));
  14. }
  15. vertex.voteToHalt();
  16. }
  17. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<LongIdDoubleValueFriendsList> messages) throws IOException {
  5. DoubleWritable vertexValue = new DoubleWritable(0.0);
  6. if (vertex.getNumEdges() > 0) {
  7. vertexValue.set(Math.log(1.0 / (double) vertex.getNumEdges()));
  8. }
  9. vertex.setValue(vertexValue);
  10. }

代码示例来源:origin: grafos-ml/okapi

  1. void applyUpdate(FloatMatrix deltaUpdate, Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex) {
  2. vertex.setValue(new FloatMatrixWritable(vertex.getValue().add(deltaUpdate)));
  3. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(Vertex<IntWritable, IntWritable, NullWritable> vertex,
  3. Iterable<IntWritable> messages) throws IOException {
  4. boolean changed = false;
  5. for (IntWritable message : messages) {
  6. if (vertex.getValue().get() < message.get()) {
  7. vertex.setValue(message);
  8. changed = true;
  9. }
  10. }
  11. if (getSuperstep() == 0 || changed) {
  12. sendMessageToAllEdges(vertex, vertex.getValue());
  13. }
  14. vertex.voteToHalt();
  15. }
  16. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, LongWritable, DoubleWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. LongWritable vertexValue = vertex.getValue();
  6. vertexValue.set(vertex.getNumEdges());
  7. vertex.setValue(vertexValue);
  8. vertex.voteToHalt();
  9. }
  10. }

代码示例来源:origin: grafos-ml/okapi

  1. protected void initFactorsIfNeeded(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex) {
  2. if (null == vertex.getValue() || vertex.getValue().columns != d){
  3. vertex.setValue(new FloatMatrixWritable(FloatMatrix.rand(d)));
  4. }
  5. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. double oldSum = getSuperstep() == 0 ? 0 : vertex.getValue().get();
  6. double newValue = this.<DoubleWritable>getAggregatedValue(SMC_AGG).get();
  7. double newSum = oldSum + newValue;
  8. vertex.setValue(new DoubleWritable(newSum));
  9. SimpleMasterComputeWorkerContext workerContext = getWorkerContext();
  10. workerContext.setFinalSum(newSum);
  11. LOG.info("Current sum: " + newSum);
  12. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex,
  3. Iterable<FloatMatrixMessage> messages) throws IOException {
  4. FloatMatrixWritable vector =
  5. new FloatMatrixWritable(getContext().getConfiguration().getInt(
  6. VECTOR_SIZE, VECTOR_SIZE_DEFAULT));
  7. Random randGen = new Random();
  8. for (int i=0; i<vector.length; i++) {
  9. vector.put(i, 0.01f*randGen.nextFloat());
  10. }
  11. vertex.setValue(vector);
  12. for (Edge<CfLongId, FloatWritable> edge : vertex.getEdges()) {
  13. FloatMatrixMessage msg = new FloatMatrixMessage(
  14. vertex.getId(), vertex.getValue(), edge.getValue().get());
  15. sendMessage(edge.getTargetVertexId(), msg);
  16. }
  17. vertex.voteToHalt();
  18. }
  19. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. double oldSum = getSuperstep() == 0 ? 0 : vertex.getValue().get();
  6. double newValue = this.<DoubleWritable>getAggregatedValue(SMC_AGG).get();
  7. double newSum = oldSum + newValue;
  8. vertex.setValue(new DoubleWritable(newSum));
  9. SimpleMigrationMasterWorkerContext workerContext = getWorkerContext();
  10. workerContext.setFinalSum(newSum);
  11. LOG.info("Current sum: " + newSum);
  12. }
  13. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) {
  5. double oldSum = getSuperstep() == 0 ? 0 : vertex.getValue().get();
  6. double newValue = this.<DoubleWritable>getAggregatedValue(SMC_AGG).get();
  7. double newSum = oldSum + newValue;
  8. vertex.setValue(new DoubleWritable(newSum));
  9. SimpleMasterComputeWorkerContext workerContext =
  10. (SimpleMasterComputeWorkerContext) getWorkerContext();
  11. workerContext.setFinalSum(newSum);
  12. LOG.info("Current sum: " + newSum);
  13. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex,
  3. Iterable<FloatMatrixMessage> messages) throws IOException {
  4. FloatMatrixWritable vector =
  5. new FloatMatrixWritable(getContext().getConfiguration().getInt(
  6. VECTOR_SIZE, VECTOR_SIZE_DEFAULT));
  7. Random randGen = new Random();
  8. for (int i=0; i<vector.length; i++) {
  9. vector.put(i, 0.01f*randGen.nextFloat());
  10. }
  11. vertex.setValue(vector);
  12. for (Edge<CfLongId, FloatWritable> edge : vertex.getEdges()) {
  13. FloatMatrixMessage msg = new FloatMatrixMessage(
  14. vertex.getId(), vertex.getValue(), edge.getValue().get());
  15. sendMessage(edge.getTargetVertexId(), msg);
  16. }
  17. vertex.voteToHalt();
  18. }
  19. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex,
  3. Iterable<FloatMatrixMessage> messages) throws IOException {
  4. FloatMatrixWritable vector =
  5. new FloatMatrixWritable(getContext().getConfiguration().getInt(
  6. VECTOR_SIZE, VECTOR_SIZE_DEFAULT));
  7. Random randGen = new Random();
  8. for (int i=0; i<vector.length; i++) {
  9. vector.put(i, 0.01f*randGen.nextFloat());
  10. }
  11. vertex.setValue(vector);
  12. for (FloatMatrixMessage msg : messages) {
  13. DefaultEdge<CfLongId, FloatWritable> edge =
  14. new DefaultEdge<CfLongId, FloatWritable>();
  15. edge.setTargetVertexId(msg.getSenderId());
  16. edge.setValue(new FloatWritable(msg.getScore()));
  17. vertex.addEdge(edge);
  18. }
  19. // The score does not matter at this point.
  20. sendMessageToAllEdges(vertex,
  21. new FloatMatrixMessage(vertex.getId(), vertex.getValue(), 0.0f));
  22. vertex.voteToHalt();
  23. }
  24. }

代码示例来源:origin: grafos-ml/okapi

  1. /**
  2. * We override this function as we need a special treatment for item biases. See the class documentation for the explanation.
  3. */
  4. protected void initFactorsIfNeeded(Vertex<CfLongId,FloatMatrixWritable,FloatWritable> vertex) {
  5. if (null == vertex.getValue() || vertex.getValue().columns != d+1){
  6. vertex.setValue(new FloatMatrixWritable(FloatMatrix.rand(d + 1)));
  7. }
  8. if (vertex.getId().isUser()){//In BPR the first factor of the user is always 1, its to have item baselines
  9. vertex.getValue().put(0, 1f);
  10. }
  11. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. if (getSuperstep() == 0) {
  6. vertex.setValue(new DoubleWritable(Double.MAX_VALUE));
  7. }
  8. double minDist = isSource(vertex) ? 0d : Double.MAX_VALUE;
  9. for (DoubleWritable message : messages) {
  10. minDist = Math.min(minDist, message.get());
  11. }
  12. if (minDist < vertex.getValue().get()) {
  13. vertex.setValue(new DoubleWritable(minDist));
  14. for (Edge<LongWritable, DoubleWritable> edge : vertex.getEdges()) {
  15. double distance = minDist + edge.getValue().get();
  16. sendMessage(edge.getTargetVertexId(),
  17. new DoubleWritable(distance));
  18. }
  19. }
  20. vertex.voteToHalt();
  21. }
  22. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable,
  3. FloatWritable> vertex, Iterable<FloatMatrixMessage> messages)
  4. throws IOException {
  5. FloatMatrixWritable vector =
  6. new FloatMatrixWritable(getContext().getConfiguration().getInt(
  7. VECTOR_SIZE, VECTOR_SIZE_DEFAULT));
  8. Random randGen = new Random();
  9. for (int i=0; i<vector.length; i++) {
  10. vector.put(i, 0.01f*randGen.nextFloat());
  11. }
  12. vertex.setValue(vector);
  13. for (FloatMatrixMessage msg : messages) {
  14. DefaultEdge<CfLongId, FloatWritable> edge =
  15. new DefaultEdge<CfLongId, FloatWritable>();
  16. edge.setTargetVertexId(msg.getSenderId());
  17. edge.setValue(new FloatWritable(msg.getScore()));
  18. vertex.addEdge(edge);
  19. }
  20. // The score does not matter at this point.
  21. sendMessageToAllEdges(vertex,
  22. new FloatMatrixMessage(vertex.getId(), vertex.getValue(), 0.0f));
  23. vertex.voteToHalt();
  24. }
  25. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, LongWritable, DoubleWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. if (getSuperstep() == 0) {
  6. Iterable<Edge<LongWritable, DoubleWritable>> edges = vertex.getEdges();
  7. for (Edge<LongWritable, DoubleWritable> edge : edges) {
  8. sendMessage(edge.getTargetVertexId(), new DoubleWritable(1.0));
  9. }
  10. } else {
  11. long sum = 0;
  12. for (DoubleWritable message : messages) {
  13. sum++;
  14. }
  15. LongWritable vertexValue = vertex.getValue();
  16. vertexValue.set(sum);
  17. vertex.setValue(vertexValue);
  18. vertex.voteToHalt();
  19. }
  20. }
  21. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex, Iterable<FloatMatrixMessage> messages) throws IOException {
  3. vertex.setValue(new FloatMatrixWritable(FloatMatrix.rand(DIM)));
  4. if(getSuperstep() == 0){
  5. Iterable<Edge<CfLongId, FloatWritable>> edges = vertex.getEdges();
  6. sendMessage(vertex.getId(), emptyMsg); //send message to myself in order to be executed in the next super step
  7. for (Edge<CfLongId, FloatWritable> edge : edges) {
  8. sendMessage(edge.getTargetVertexId(), new FloatMatrixMessage(vertex.getId(), emptyList, edge.getValue().get()));
  9. }
  10. }
  11. vertex.voteToHalt();
  12. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. if (getSuperstep() >= 1) {
  6. double sum = 0;
  7. for (DoubleWritable message : messages) {
  8. sum += message.get();
  9. }
  10. DoubleWritable vertexValue =
  11. new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
  12. vertex.setValue(vertexValue);
  13. aggregate(MAX_AGG, vertexValue);
  14. aggregate(MIN_AGG, vertexValue);
  15. aggregate(SUM_AGG, new LongWritable(1));
  16. LOG.info(vertex.getId() + ": PageRank=" + vertexValue +
  17. " max=" + getAggregatedValue(MAX_AGG) +
  18. " min=" + getAggregatedValue(MIN_AGG));
  19. }
  20. if (getSuperstep() < MAX_SUPERSTEPS) {
  21. long edges = vertex.getNumEdges();
  22. sendMessageToAllEdges(vertex,
  23. new DoubleWritable(vertex.getValue().get() / edges));
  24. } else {
  25. vertex.voteToHalt();
  26. }
  27. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex, Iterable<FloatMatrixMessage> messages) throws IOException {
  3. if (getSuperstep() == 0){//send empty message with the count
  4. vertex.setValue(new FloatMatrixWritable(FloatMatrix.ones(1))); //set all users to 1
  5. if (vertex.getId().isUser()){
  6. Iterable<Edge<CfLongId, FloatWritable>> edges = vertex.getEdges();
  7. sendMessage(vertex.getId(), emptyMsg); //send message to myself in order to be executed in the next super step
  8. for (Edge<CfLongId, FloatWritable> edge : edges) {
  9. sendMessage(edge.getTargetVertexId(), new FloatMatrixMessage(vertex.getId(), emptyList, edge.getValue().get()));
  10. }
  11. }
  12. }else if(getSuperstep() == 1){//compute how many messages were received by an item (how many users rated this item)
  13. if (vertex.getId().isItem()){
  14. int cnt = 0;
  15. for (@SuppressWarnings("unused") FloatMatrixMessage msg : messages) {
  16. cnt+= 1;
  17. }
  18. FloatMatrix output = FloatMatrix.zeros(1);
  19. output.put(0, cnt);
  20. vertex.setValue(new FloatMatrixWritable(output));
  21. }
  22. }
  23. vertex.voteToHalt();
  24. }
  25. }

相关文章