Interactive Terraform visualization. State and configuration explorer.

Overview

Rover - Terraform Visualizer

Rover is a Terraform visualizer.

In order to do this, Rover:

  1. generates a plan file and parses the configuration in the root directory or uses a provided plan.
  2. parses the plan and configuration files to generate three items: the resource overview (rso), the resource map (map), and the resource graph (graph).
  3. consumes the rso, map, and graph to generate an interactive configuration and state visualization hosts on 0.0.0.0:9000.

Feedback (via issues) and pull requests are appreciated!

Rover Screenshot

Quickstart

The fastest way to get up and running with Rover is through Docker.

Run the following command in any Terraform workspace to generate a visualization. This command copies all the files in your current directory to the Rover container and exposes port :9000.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
2021/07/02 06:46:23 Starting Rover...
2021/07/02 06:46:23 Initializing Terraform...
2021/07/02 06:46:24 Generating plan...
2021/07/02 06:46:25 Parsing configuration...
2021/07/02 06:46:25 Generating resource overview...
2021/07/02 06:46:25 Generating resource map...
2021/07/02 06:46:25 Generating resource graph...
2021/07/02 06:46:25 Done generating assets.
2021/07/02 06:46:25 Rover is running on 0.0.0.0:9000

Once Rover runs on 0.0.0.0:9000, navigate to it to find the visualization!

Standalone mode

Standalone mode generates a rover.zip file containing all the static assets.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone true

After all the assets are generated, unzip rover.zip and open rover/index.html in your favorite web browser.

Set environment variables

Use --env or --env-file to set environment variables in the Docker container. For example, you can save your AWS credentials to an .env file.

$ printenv | grep "AWS" > .env

Then, add it as environment variables to your Docker container with --env-file.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src --env-file ./.env im2nguyen/rover

Define tfvars and Terraform variables

Use -tfVarsFile or -tfVar to define variables. For example, you can run the following in the example/random-test directory to overload variables.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -tfVarsFile test.tfvars -tfVar max_length=4

Installation

You can download Rover binary specific to your system by visiting the Releases page. Download the binary, unzip, then move rover into your PATH.

Build from source

You can build Rover manually by cloning this repository, then building the frontend and compiling the binary. It requires Go v1.16+ and npm.

Build frontend

First, navigate to the ui.

$ cd ui

Then, install the dependencies.

$ npm install

Finally, build the frontend.

$ npm run build

Compile binary

Navigate to the root directory.

$ cd ..

Compile and install the binary. Alternatively, you can use go build and move the binary into your PATH.

$ go install

Build Docker image

First, compile the binary for linux/amd64.

$ env GOOS=linux GOARCH=amd64 go build .

Then, build the Docker image.

$ docker build . -t im2nguyen/rover --no-cache

Basic usage

This repository contains two example Terraform configurations in example.

Navigate into random-test example configuration. This directory contains configuration that showcases a wide variety of features common in Terraform (modules, count, output, locals, etc) with the random provider.

$ cd example/random-test

Run Rover. Rover will start running in the current directory and assume the Terraform binary lives in /usr/local/bin/terraform by default.

$ rover
2021/06/23 22:51:27 Starting Rover...
2021/06/23 22:51:27 Initializing Terraform...
2021/06/23 22:51:28 Generating plan...
2021/06/23 22:51:28 Parsing configuration...
2021/06/23 22:51:28 Generating resource overview...
2021/06/23 22:51:28 Generating resource map...
2021/06/23 22:51:28 Generating resource graph...
2021/06/23 22:51:28 Done generating assets.
2021/06/23 22:51:28 Rover is running on 0.0.0.0:9000

You can specify the working directory (where your configuration is living) and the Terraform binary location using flags.

$ rover -workingDir "example/eks-cluster" -tfPath "/Users/dos/terraform"

Once Rover runs on 0.0.0.0:9000, navigate to it to find the visualization!

Comments
  • runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    Posting this for now as I continue to debug, but maybe others are seeing similar issues.

    Overview: Runtime error when attempting to generate graph from provided plan that points to an invalid memory address reference. Upon further debugging, it appears to be related to a Data source type being labeled as a Resource source type. At the moment I am unsure of how to reproduce.

    Release Version: 3.0

    ERROR Message:

    > rover -planPath plan.out
    2022/01/31 09:48:08 Starting Rover...
    2022/01/31 09:48:08 Using provided plan...
    2022/01/31 09:48:12 Generating resource overview...
    2022/01/31 09:48:12 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x174c28e]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009fdd0, 0xc00036ac40, 0x38)
    	/Users/joseestrada/rover/map.go:225 +0x1dae
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009e5a0, 0xc0003a8cf0, 0x25)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00050e750, 0xc000399170, 0x12)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc000535b88, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateMap(0xc000187680, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:335 +0x1ee
    main.(*rover).generateAssets(0xc000187680, 0xc000187680, 0x2)
    	/Users/joseestrada/rover/main.go:193 +0x130
    main.main()
    	/Users/joseestrada/rover/main.go:138 +0xea5
    

    Additional Context: From what I gather and understand, it appears that my generated Terraform Plan is causing a runtime error due to a resource being mislabeled. I believe that a Data source is being labeled as a Resource type and thus causing the error.

    This error is happening during the generating of the resource map where it appears to be setting the file Name of the resource as well as its line number (code link). To help deep dive into the issue a bit more I modified the code locally which is described by the following code block.

    note: forgive my naming of things in advance. I am somewhat confused still about the difference between states and configs.

    			if configured {
    				var fname string
    				ind := fmt.Sprintf("%s.%s", re.ResourceType, re.Name)
    
    				log.Printf("Resource State Type: %s",rs.Type)
    
    				if rs.Type == ResourceTypeData {
    					
    					log.Println("Resource State Type is Data")
    					
    					ind = fmt.Sprintf("data.%s", ind)
    					fname = filepath.Base(configs[parentConfig].Module.DataResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.DataResources[ind].Pos.Line
    				} else if rs.Type == ResourceTypeResource {
    					
    					log.Printf("Resource Name: %s",re.Name)
    					log.Printf("Resource Type: %s",re.ResourceType)
    					for key := range configs[parentConfig].Module.ManagedResources {
    						log.Printf("Parent Module Configs Managed Resource Key: %s",key)
    					}
    
    					fname = filepath.Base(configs[parentConfig].Module.ManagedResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.ManagedResources[ind].Pos.Line
    				}
    
    				r.AddFileIfNotExists(parent, parentModule, fname)
    
    				parent.Children[fname].Children[id] = re
    
    			}
    

    The following output here shows a bit more whats going on.

    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.private
    2022/01/31 09:48:12 Resource State Type: data
    2022/01/31 09:48:12 Resource State Type is Data
    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public
    2022/01/31 09:48:12 Resource State Type: resource
    2022/01/31 09:48:12 Resource Name: public
    2022/01/31 09:48:12 Resource Type: aws_route53_zone
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this_prevent_destroy
    

    First thing to note here that is worth calling out, there is a 3 depth module call in play. I don't think that matters but maybe it does. It can be seen here at the resource address module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public is being labeled as a Resource as opposed to Data. The log further down confirms that the Parent module does not contain a resource for hosted zone. The odd thing here is that the resource prior is very similar, but is treated correctly as a Data type. It has an almost identical path to the impacted resource address.

    At the moment I cannot immediately tell how this type is being set because I assume that is where the problem is located or will at least tell us more information about it. FWIW this is a runtime error that is happening when allowing rover to execute the Terraform Plan as well.

    I will keep digging into this but if others see anything similar or have some tips help is appreciated.

    opened by jlestrada 28
  • [Feature Request] How can rover use an already generated plan ?

    [Feature Request] How can rover use an already generated plan ?

    Thank you for this great tool! It is really useful for a 4-eye plan checking. But it will be really cool to be able to use rover directly with an already existing plan file (json or not) since some organization (as mine) are using some automation and abstraction stuff to generate plans and then apply them. So as a for eye checking it will be very interesting.

    Cheers :)

    enhancement completed 
    opened by soubinan 16
  • Use predefined TF plan for visualization

    Use predefined TF plan for visualization

    Hi. Thanks for developing this tool. I am not able to run the tool as it tries to generate the TF plan but my configuration uses symlinked files and environment variables to generate the plan. Could you support loading the details directly from a specified plan file instead of generating it on the fly?

    opened by avarghese-sqsp 15
  • Invalid visualization

    Invalid visualization

    As was being discussed in #90, according to @JackFlukinger, there's an issue in the visualization of my AWS-based TF state.

    SVG generated by Rover is here: https://file.io/YJrw7hJXmSEp

    Let's discuss and fix this issue here instead of in the original bug meant for the panic that got fixed.

    Okay @nonbeing , definitely not intended. Where is the data.aws_iam_policy_document.webhook_sns_topic_policy supposed to be housed? Should be a simple fix.

    I'm not sure I understand, @JackFlukinger ... Could you please explain what the issue is?

    opened by nonbeing 14
  • Terraform Visualizer  - Resources in the graph are on top of each other

    Terraform Visualizer - Resources in the graph are on top of each other

    Hi,

    This could be by design, but when I go to the Rover - Terraform Visualizer, all the resources are on top of each other in the centre of the graph.

    Do I need to move these elements around manually or should it be done by Rover?

    Thank you! Dave

    bug completed 
    opened by davetustin 10
  • terraform modules in relative subdirectories

    terraform modules in relative subdirectories

    Hi, we do have the terraform modules relative to the environment related files. Is it possible to use rover with this setup? /env/env_name/main.tf /env/env_name/state.conf ... configuration.auto.tfvars.... etc /terraform_modules/mod1 /terraform_modules/mod2

    Where e.g. main.tf points to module ../../terraform_modules/module1

    Thanks

    completed 
    opened by zimmdi 9
  • [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    Hi, thanks for that amazing tool.

    I found that version v0.3.0 doesn't work while v0.2.2 does work:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src --env=AWS_ACCESS_KEY_ID="nanana" --env=AWS_SECRET_ACCESS_KEY="nununu" --env=AWS_DEFAULT_REGION="eu-west-1" --platform linux/amd64 im2nguyen/rover -tfBackendConfig lalala.s3.tfbackend -tfVarsFile lalala.tfvars -workspaceName=lalala
    2022/01/14 11:59:40 Starting Rover...
    2022/01/14 11:59:40 Initializing Terraform...
    2022/01/14 11:59:58 Running in mkyc workspace...
    2022/01/14 12:00:03 Generating plan...
    2022/01/14 12:00:34 Parsing configuration...
    2022/01/14 12:00:34 Generating resource overview...
    2022/01/14 12:00:35 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0xa5b0cf]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0003c87e0, {0xc00003d8d8, 0x12})
            /src/map.go:212 +0x1acf
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0006ddb88, {0x0, 0x0})
            /src/map.go:240 +0xefc
    main.(*rover).GenerateMap(0xc000159320)
            /src/map.go:319 +0x1bc
    main.(*rover).generateAssets(0xc000159320)
            /src/main.go:207 +0x176
    main.main()
            /src/main.go:142 +0xd19
    
    

    when running the same with v0.2.2 it works.

    opened by mkyc 8
  • Nested Modules and SVG Image Generation in CLI

    Nested Modules and SVG Image Generation in CLI

    This is a big one.

    Adds:

    • Full nested module support
    • RSO rewritten to support nested modules and spotty configuration
    • Graph node and edge refactor to generate from resource map instead of going back through plans, states, configs again
      • Can make changes to graph output by modifying map
    • SVG instead of PNG output -- browsers only allow downloaded images up to some unspecified size. I had some trouble with large graphs not exporting due to this. SVG format makes the images much smaller, and infinitely scalable
    • Some map updates, always shows line numbers (even in nested modules) if available
      • Nested resources and modules are indented for general readability
    • Terraform 1.1.2 support
    • SVG export support in CLI with -genImage true. Probably does not work with docker, though.

    I'm happy to go into a ton more detail, but it all works. If you don't want to PR because this is so ginormous I get it.

    Resolves #60 Resolves #57 Resolves #48 Resolves #46 Resolves #26

    opened by JackFlukinger 8
  • Rover & CDK for Terraform & Azure CLI

    Rover & CDK for Terraform & Azure CLI

    Hi,

    First of all Rover seems great!

    But, I'm trying to use Rover on a CDK for Terraform -project (CDKTF). It is understandable, that Rover does not work in the basedir of the CDK project. So, I cd to the dir where CDKTF creates the Terraform JSON. In that dir what happens is:

    % ls
    cdk.tf.json     plan
    % docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
    2021/09/24 07:50:10 Starting Rover...
    2021/09/24 07:50:10 Initializing Terraform...
    2021/09/24 07:50:10 Unable to parse Plan: exit status 1
    
    Error: Error building ARM Config: Please ensure you have installed Azure CLI version 2.0.79 or newer. Error parsing json result from the Azure CLI: Error launching Azure CLI: exec: "az": executable file not found in $PATH.
    
    
    % az --version                                                   
    azure-cli                         2.28.0
    
    core                              2.28.0
    telemetry                          1.0.6
    
    Python location '/usr/local/Cellar/azure-cli/2.28.0/libexec/bin/python'
    Extensions directory '/Users/andreas.asuja/.azure/cliextensions'
    
    Python (Darwin) 3.9.7 (default, Sep  3 2021, 12:37:55) 
    [Clang 12.0.5 (clang-1205.0.22.9)]
    
    Legal docs and information: aka.ms/AzureCliLegal
    
    
    Your CLI is up-to-date.
    

    I'm sorry I don't have time to dig more into this, but just to inform you.

    opened by ghost 8
  • [Feature Request] rover support to terraform workspaces

    [Feature Request] rover support to terraform workspaces

    First this tool is awesome!! we use terraform workspaces heavily and would love to have a way to pass the terraform workspace select command some how. Let me know if there is a way!

    thanks!

    enhancement completed 
    opened by vinayatnie 8
  • runtime panic issue with 0.3.0 release

    runtime panic issue with 0.3.0 release

    Still have some issue with running rover in my local

    How to reproduce

    • grab the artifact from releases page
    • create main.tf
    • run rover_0.3.0_darwin_arm64/rover_v0.3.0 -standalone -tfPath <path-to-terraform-installation>

    main.tf ref

    output "hello_world" {
      value = "Hello, World!"
    }
    

    error log

    2022/01/24 14:25:15 Starting Rover...
    2022/01/24 14:25:15 Initializing Terraform...
    2022/01/24 14:25:15 Generating plan...
    2022/01/24 14:25:15 Generating resource overview...
    open .terraform/modules/modules.json: no such file or directory
    2022/01/24 14:25:15 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x2 addr=0xb0 pc=0x10302d520]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0x1400000b320, 0x140003c9b68, {0x0, 0x0})
    	rover/map.go:103 +0x1e0
    main.(*rover).GenerateMap(0x1400000b320)
    	rover/map.go:322 +0x1c8
    main.(*rover).generateAssets(0x1400000b320)
    	rover/main.go:193 +0x10c
    main.main()
    	rover/main.go:138 +0xeb8
    
    opened by chenrui333 7
  • UI Improvements

    UI Improvements

    Your tool definitely makes the job! How about some improvements? Here are my suggestions:

    • ability to toggle (fold/unfold or hide/unhide) the Legend section
    • text box that will help to search for an object
    • save as PNG button
    • button to reset graph section (IMHO must have)
    opened by lkurzyniec 0
  • terraform target option

    terraform target option

    In terraform you can provide a target module to apply using -target option to only execute a particular module. Does rover support a similar option ? similarly how do you pass the additional options to terraform ?

    opened by nswamy 0
  • CI/CD Integration ideas

    CI/CD Integration ideas

    Hi,

    Great tool and benefits are immediately visible. I'm currently using it locally, outside of the CI/CD pipeline as helper before I push the code which brings me to the question of possible scenarios where this can be employed as part of the pipeline. Something like report for the PR approver. Are there such scenarios and what could be the best practice for that kind of integration?

    opened by majorku5anagi 0
  • Plan fails due to missing variable, even when passing variable with -tfVar

    Plan fails due to missing variable, even when passing variable with -tfVar

    I'm trying to use rover but getting issues with missing variables. This is the command I am using:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone true -tfVar clusterName=eu-cluster

    then I see this error:

    2022/08/26 20:38:29 Starting Rover...
    2022/08/26 20:38:29 Initializing Terraform...
    2022/08/26 20:38:36 Generating plan...
    2022/08/26 20:38:41 Unable to parse Plan: Unable to run Plan: variable "clusterName" was required but not supplied
    [[email protected] terraform]$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone
    

    Is there something I am missing here?

    opened by fraserc182 1
  • Brew Terraform dependency

    Brew Terraform dependency

    Hi,

    I'd suggest Terraform is removed as a dependency in Brew since it can conflict with local setup, e.g. when tfenv is used instead managing Terraform installation with Brew.

    Cheers, Alen

    opened by alen-z 0
  • Issues with terraform versioning when using rover

    Issues with terraform versioning when using rover

    I'm trying to build a graphic while running rover (from my terraform project directory) through docker with the following command:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover:v0.3.3 -planPath terraform.tfstate

    The output would be the following:

    2022/08/24 13:54:51 Starting Rover...
    2022/08/24 13:54:51 Using provided plan...
    2022/08/24 13:54:53 Unable to parse Plan: Unable to read Plan (/src/terraform.tfstate): exit status 1
    
    Error: missing or corrupted provider plugins:
      - registry.terraform.io/hashicorp/random: there is no package for registry.terraform.io/hashicorp/random 3.3.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/time: there is no package for registry.terraform.io/hashicorp/time 0.7.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/cloudinit: there is no package for registry.terraform.io/hashicorp/cloudinit 2.2.0 cached in .terraform/providers
      - registry.terraform.io/gavinbunney/kubectl: there is no package for registry.terraform.io/gavinbunney/kubectl 1.14.0 cached in .terraform/providers
      - registry.terraform.io/hashicorp/external: there is no package for registry.terraform.io/hashicorp/external 2.2.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/aws: there is no package for registry.terraform.io/hashicorp/aws 3.75.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/null: there is no package for registry.terraform.io/hashicorp/null 3.1.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/tls: there is no package for registry.terraform.io/hashicorp/tls 4.0.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/helm: there is no package for registry.terraform.io/hashicorp/helm 2.6.0 cached in .terraform/providers
      - registry.terraform.io/hashicorp/kubernetes: there is no package for registry.terraform.io/hashicorp/kubernetes 2.12.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/http: there is no package for registry.terraform.io/hashicorp/http 3.0.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/local: there is no package for registry.terraform.io/hashicorp/local 2.2.3 cached in .terraform/providers
    

    I can however start rover through passing the plan as a json:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover:v0.3.3 -planJSONPath=plan.json

    If I access the container via CLI I can see that the terraform version used is 1.1.2 when the version used for the deployment is 1.1.9. I've tried passing the terraform path through -tfPath hoping it would take the correct one used for my deployment but to no help.

    How can I fix the versioning issue so that terraform init doesn't fail? (I'm also parsing it as a json to work because if I don't parse any plan rover will freeze during terraform init, most likely due to this issue)

    Also, is there a way to generate a graphic (since I want to include it in a pipeline) with only specific resources shown, like for example only created and updated resources without anything else (especially variables) ?

    Thanks in advance!

    opened by captaindanila 0
Releases(v0.3.3)
Owner
Tu Nguyen
Tu Nguyen
A Multi-modal Model Chinese Spell Checker Released on ACL2021.

ReaLiSe ReaLiSe is a multi-modal Chinese spell checking model. This the office code for the paper Read, Listen, and See: Leveraging Multimodal Informa

DaDa 106 Dec 29, 2022
Code for WECHSEL: Effective initialization of subword embeddings for cross-lingual transfer of monolingual language models.

WECHSEL Code for WECHSEL: Effective initialization of subword embeddings for cross-lingual transfer of monolingual language models. arXiv: https://arx

Institute of Computational Perception 45 Dec 29, 2022
Tools for the Cleveland State Human Motion and Control Lab

Introduction This is a collection of tools that are helpful for gait analysis. Some are specific to the needs of the Human Motion and Control Lab at C

CSU Human Motion and Control Lab 88 Dec 16, 2022
A CNN model to detect hand gestures.

Software Used python - programming language used, tested on v3.8 miniconda - for managing virtual environment Libraries Used opencv - pip install open

Shivanshu 6 Jul 14, 2022
The toolkit to generate auto labeled datasets

Ozeu Ozeu is the toolkit to autolabal dataset for instance segmentation. You can generate datasets labaled with segmentation mask and bounding box fro

Xiong Jie 28 Mar 28, 2022
Progressive Growing of GANs for Improved Quality, Stability, and Variation

Progressive Growing of GANs for Improved Quality, Stability, and Variation — Official TensorFlow implementation of the ICLR 2018 paper Tero Karras (NV

Tero Karras 5.9k Jan 05, 2023
Autoregressive Models in PyTorch.

Autoregressive This repository contains all the necessary PyTorch code, tailored to my presentation, to train and generate data from WaveNet-like auto

Christoph Heindl 41 Oct 09, 2022
PyTorch implementation of Weak-shot Fine-grained Classification via Similarity Transfer

SimTrans-Weak-Shot-Classification This repository contains the official PyTorch implementation of the following paper: Weak-shot Fine-grained Classifi

BCMI 60 Dec 02, 2022
Neural Caption Generator with Attention

Neural Caption Generator with Attention Tensorflow implementation of "Show

Taeksoo Kim 510 Nov 30, 2022
Yet another video caption

Yet another video caption

Fan Zhimin 5 May 26, 2022
Disagreement-Regularized Imitation Learning

Due to a normalization bug the expert trajectories have lower performance than the rl_baseline_zoo reported experts. Please see the following link in

Kianté Brantley 25 Apr 28, 2022
COLMAP - Structure-from-Motion and Multi-View Stereo

COLMAP About COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.

4.7k Jan 07, 2023
Exporter for Storage Area Network (SAN)

SAN Exporter Prometheus exporter for Storage Area Network (SAN). We all know that each SAN Storage vendor has their own glossary of terms, health/perf

vCloud 32 Dec 16, 2022
UnFlow: Unsupervised Learning of Optical Flow with a Bidirectional Census Loss

UnFlow: Unsupervised Learning of Optical Flow with a Bidirectional Census Loss This repository contains the TensorFlow implementation of the paper UnF

Simon Meister 270 Nov 06, 2022
Implementation of QuickDraw - an online game developed by Google, combined with AirGesture - a simple gesture recognition application

QuickDraw - AirGesture Introduction Here is my python source code for QuickDraw - an online game developed by google, combined with AirGesture - a sim

Viet Nguyen 89 Dec 18, 2022
Count GitHub Stars ⭐

Count GitHub Stars per Day ⭐ Track GitHub stars per day over a date range to measure the open-source popularity of different repositories. Requirement

Ultralytics 20 Nov 20, 2022
Training Confidence-Calibrated Classifier for Detecting Out-of-Distribution Samples / ICLR 2018

Training Confidence-Calibrated Classifier for Detecting Out-of-Distribution Samples This project is for the paper "Training Confidence-Calibrated Clas

168 Nov 29, 2022
The code is for the paper "A Self-Distillation Embedded Supervised Affinity Attention Model for Few-Shot Segmentation"

SD-AANet The code is for the paper "A Self-Distillation Embedded Supervised Affinity Attention Model for Few-Shot Segmentation" [arxiv] Overview confi

cv516Buaa 9 Nov 07, 2022
Individual Treatment Effect Estimation

CAPE Individual Treatment Effect Estimation Run CAPE python train_causal.py --loop 10 -m cape_cau -d NI --i_t 1 Run a baseline model python train_cau

S. Deng 4 Sep 02, 2022
Official pytorch implementation of paper Dual-Level Collaborative Transformer for Image Captioning (AAAI 2021).

Dual-Level Collaborative Transformer for Image Captioning This repository contains the reference code for the paper Dual-Level Collaborative Transform

lyricpoem 160 Dec 11, 2022