Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open3D-ML Jupyter Tutorials #512

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Conversation

AlexZakIntel
Copy link

@AlexZakIntel AlexZakIntel commented Apr 7, 2022

Sanskar, Sameer, and Benjamin,

This PR is for newly created Open3D-ML Jupyter Tutorials. They were run from the Open3D-ML/docs/tutorial/notebook/ path.

Please feel free to critique or suggest changes or improvements.

Thank you all very much!


This change is Reviewable

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@@ -0,0 +1,333 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running Semantic Segmentation inference on custom data


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • This needs an introduction at the top describing what we will do in this tutorial.
  • The language describing the steps is not quite right. @sanskar, you may need to directly edit Alex's PR. e.g: (-in our data model, we define a dataset....)
  • The note at the top about downloading weights is specific to PyTorch. Add TF alternative.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To Do (Sanskar): editing pass

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,333 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... to the data weights...


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add (commented) command to download the weights directly in the notebook:

# from urllib.request import urlretrieve

# urlretrieve(weights_url, filename=weights_file)


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explain in_channels=3

...with our data weights file...


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,608 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

open3d.ml.torch - Open3D-ML Torch API library


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,608 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checking the type is not useful. Instead use

vars(cfg)

This will list the 3 dictionaries in cfg


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,608 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention that items can be viewed as well as updated like in a standard Python dict.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,373 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only keep the part of the image inside the red box - that's clearer than the entire image + arrow.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,373 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make this image smaller - the font size should match the font size in the text.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file needs an editing pass for language and organization. Also, rephrase from a user's perspective who is trying to learn what functionality is available and exactly what it will do. As an example, mention the inputs needed to make the main steps work (e.g. how do you get the dataset?) and what is the result. e.g. after running training, you should have a checkpoint (where?) that you can use for testing or inference.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To Do (Sanskar): editing pass for language and organization

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,333 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this tutorial, we will learn how to train a semantic segmentation model using PyTorch in a Jupyter Notebook. We assume that you are familiar with Jupyter Notebook and have created a folder notebooks in a folder that is relative to ml3d.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs editing to remove repeating language:

Run inference with a pre-trained model. For this example, we will use the RandLANet model.

Rephrase:

Train a model. We will train a model using the SemanticKITTI dataset and RandLANet model.

Rephrase for clarity:

Run an inference and run a test. We will run an inference using the 'training' split that use a pointcloud and display a result. However, a test is run on a pre-defined test set rather than a pass pointcloud.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

@ssheorey ssheorey Apr 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this example, we will use the RandLANet model.

This is already covered earlier. Avoid repetition.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -0,0 +1,333 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running a test is very similar to training the model.

Instead, say what this will do:

Next we will evaluate the trained model on the test split.


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

AlexZakIntel and others added 4 commits April 12, 2022 10:59
for

* Reading a Config File
* Training Semantic Segmentation Model Using PyTorch
Base automatically changed from dev to main October 9, 2024 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants