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
Source code for EquiDock: Independent SE(3)-Equivariant Models for End-to-End Rigid Protein Docking (ICLR 2022)

Source code for EquiDock: Independent SE(3)-Equivariant Models for End-to-End Rigid Protein Docking (ICLR 2022) Please cite "Independent SE(3)-Equivar

Octavian Ganea 154 Jan 02, 2023
An efficient toolkit for Face Stylization based on the paper "AgileGAN: Stylizing Portraits by Inversion-Consistent Transfer Learning"

MMGEN-FaceStylor English | 简体中文 Introduction This repo is an efficient toolkit for Face Stylization based on the paper "AgileGAN: Stylizing Portraits

OpenMMLab 182 Dec 27, 2022
这是一个unet-pytorch的源码,可以训练自己的模型

Unet:U-Net: Convolutional Networks for Biomedical Image Segmentation目标检测模型在Pytorch当中的实现 目录 性能情况 Performance 所需环境 Environment 注意事项 Attention 文件下载 Downl

Bubbliiiing 567 Jan 05, 2023
DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting

DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting Created by Yongming Rao*, Wenliang Zhao*, Guangyi Chen, Yansong Tang, Zheng Z

Yongming Rao 322 Dec 31, 2022
The official implementation of A Unified Game-Theoretic Interpretation of Adversarial Robustness.

This repository is the official implementation of A Unified Game-Theoretic Interpretation of Adversarial Robustness. Requirements pip install -r requi

Jie Ren 17 Dec 12, 2022
StyleGAN - Official TensorFlow Implementation

StyleGAN — Official TensorFlow Implementation Picture: These people are not real – they were produced by our generator that allows control over differ

NVIDIA Research Projects 13.1k Jan 09, 2023
ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation

ENet in Caffe Execution times and hardware requirements Network 1024x512 1280x720 Parameters Model size (fp32) ENet 20.4 ms 32.9 ms 0.36 M 1.5 MB SegN

Timo Sämann 561 Jan 04, 2023
Code for the TPAMI paper: "Syntax Customized Video Captioning by Imitating Exemplar Sentences"

Syntax-Customized-Video-Captioning Code for the TPAMI paper: "Syntax Customized Video Captioning by Imitating Exemplar Sentences". This is my second w

3 Dec 05, 2022
ViSD4SA, a Vietnamese Span Detection for Aspect-based sentiment analysis dataset

UIT-ViSD4SA PACLIC 35 General Introduction This repository contains the data of the paper: Span Detection for Vietnamese Aspect-Based Sentiment Analys

Nguyễn Thị Thanh Kim 5 Nov 13, 2022
Prevent `CUDA error: out of memory` in just 1 line of code.

🐨 Koila Koila solves CUDA error: out of memory error painlessly. Fix it with just one line of code, and forget it. 🚀 Features 🙅 Prevents CUDA error

RenChu Wang 1.7k Jan 02, 2023
BERTMap: A BERT-Based Ontology Alignment System

BERTMap: A BERT-based Ontology Alignment System Important Notices The relevant paper was accepted in AAAI-2022. Arxiv version is available at: https:/

KRR 36 Dec 24, 2022
Learning Time-Critical Responses for Interactive Character Control

Learning Time-Critical Responses for Interactive Character Control Abstract This code implements the paper Learning Time-Critical Responses for Intera

Movement Research Lab 227 Dec 31, 2022
TensorFlow Tutorials with YouTube Videos

TensorFlow Tutorials Original repository on GitHub Original author is Magnus Erik Hvass Pedersen Introduction These tutorials are intended for beginne

9.1k Jan 02, 2023
A simple, clean TensorFlow implementation of Generative Adversarial Networks with a focus on modeling illustrations.

IllustrationGAN A simple, clean TensorFlow implementation of Generative Adversarial Networks with a focus on modeling illustrations. Generated Images

268 Nov 27, 2022
Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations, CVPR 2019 (Oral)

Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations The code of: Weakly Supervised Learning of Instance Segmentation with I

Jiwoon Ahn 472 Dec 29, 2022
Virtual Dance Reality Stage: a feature that offers you to share a stage with another user virtually

Portrait Segmentation using Tensorflow This script removes the background from an input image. You can read more about segmentation here Setup The scr

291 Dec 24, 2022
Self-labelling via simultaneous clustering and representation learning. (ICLR 2020)

Self-labelling via simultaneous clustering and representation learning 🆗 🆗 🎉 NEW models (20th August 2020): Added standard SeLa pretrained torchvis

Yuki M. Asano 469 Jan 02, 2023
Motion planning algorithms commonly used on autonomous vehicles. (path planning + path tracking)

Overview This repository implemented some common motion planners used on autonomous vehicles, including Hybrid A* Planner Frenet Optimal Trajectory Hi

Huiming Zhou 1k Jan 09, 2023
Rule based classification A hotel s customers dataset

Rule-based-classification-A-hotel-s-customers-dataset- Aim: Categorize new customers by segment and predict how much revenue they can generate This re

Şebnem 4 Jan 02, 2022
A Domain-Agnostic Benchmark for Self-Supervised Learning

DABS: A Domain Agnostic Benchmark for Self-Supervised Learning This repository contains the code for DABS, a benchmark for domain-agnostic self-superv

Alex Tamkin 81 Dec 09, 2022