Categories
Misc

‘In the NVIDIA Studio’ Welcomes Concept Designer Yangtian Li

Editor’s note: This post is part of our weekly In the NVIDIA Studio series, which celebrates featured artists, offers creative tips and tricks, and demonstrates how NVIDIA Studio technology accelerates creative workflows.  This week In the NVIDIA Studio, we welcome Yangtian Li, a senior concept artist at Singularity6. Li is a concept designer and illustrator Read article >

The post ‘In the NVIDIA Studio’ Welcomes Concept Designer Yangtian Li appeared first on NVIDIA Blog.

Categories
Misc

Trying to compare different models.

So I am trying to use neural networks for time series forecasting. I have created 3 different models (LSTM, CNN and a LSTM-CNN hybrid). Now I want to compare their performance based on the metrics MAE, RMSE and sMAPE. Here comes the dilemma, whenever I retrain the models on the same dataset, the performance of every model changes, and the previously best performing model now performs the worst now. I have tried to set the random seed to a constant, yet I am facing the same issue. Please help 🙁 Thanks.

submitted by /u/rumble_ftw
[visit reddit] [comments]

Categories
Misc

Upcoming Webinar: Optimizing DNN Inference with NVIDIA TensorRT on DRIVE Orin

Join an upcoming webinar highlighting the newest features of NVIDIA TensorRT and learn how to optimize inference engines for production on the Orin AI platform.

Categories
Misc

Mown Away: Startup Rolls Out Autonomous Lawnmower With Cutting Edge Tech

Jack Morrison and Isaac Roberts, co-founders of Replica Labs, were restless two years after their 3D vision startup was acquired, seeking another adventure. Then, in 2018, when Morrison was mowing his lawn, it struck him: autonomous lawn mowers. The two, along with Davis Foster, co-founded Scythe Robotics. The company, based in Boulder, Colo., has a Read article >

The post Mown Away: Startup Rolls Out Autonomous Lawnmower With Cutting Edge Tech appeared first on NVIDIA Blog.

Categories
Misc

Meet the Omnivore: 3D Artist Creates Towering Work With NVIDIA Omniverse

Edward McEvenue grew up making claymations in LEGO towns. Now, he’s creating photorealistic animations in virtual cities, drawing on more than a decade of experience in the motion graphics industry.

The post Meet the Omnivore: 3D Artist Creates Towering Work With NVIDIA Omniverse appeared first on NVIDIA Blog.

Categories
Misc

Neural Network Generates Global Tree Height Map, Reveals Carbon Stock Potential

Using remote sensing and an ensemble of convolutional neural networks, the study could guide sustainable forest management and climate mitigation efforts.

A new study from researchers at ETH Zurich’s EcoVision Lab is the first to produce an interactive Global Canopy Height map. Using a newly developed deep learning algorithm that processes publicly available satellite images, the study could help scientists identify areas of ecosystem degradation and deforestation. The work could also guide sustainable forest management by identifying areas for prime carbon storage—a cornerstone in mitigating climate change.

“Global high-resolution data on vegetation characteristics are needed to sustainably manage terrestrial ecosystems, mitigate climate change, and prevent biodiversity loss. With this project, we aim to fill the missing data gaps by merging data from two space missions with the help of deep learning,” said Konrad Schindler, a Professor in the Department of Civil, Environmental, and Geomatic Engineering at ETH Zurich. 

From rainforests to boreal woodland, forests play a key role in climate mitigation, absorbing up to 2 billion tons of carbon dioxide every year. Aboveground biomass, which includes all parts of the tree such as the trunk, bark, or branches, correlates with the amount of carbon stored in a forest.

Tree height is often an indicator of biomass, meaning accurate measurements could help with more precise carbon sequestration data and climate science models. This information could also guide forest management by identifying areas in need of conservation, restoration, and reforestation.

There have been many studies using AI-powered remote sensing models for forest monitoring. However, these typically work regionally and pose a compute challenge due to vast amounts of data. Models have also been unsuccessful in measuring heights over 30 meters, leading to an underestimation of tall canopies.  

A handful of current studies are deploying satellites for capturing and measuring vegetation from space. One such mission, NASA’s Global Ecosystem Dynamics Investigation (GEDI), aims to monitor the structure of forests worldwide using a space-borne laser scanner. However, it captures only sparse samples that cover less than 4% of the global landmass.

Other global remote sensing missions offer complete coverage. The Copernicus Sentinel-2 satellites capture images at a resolution of 10×10 meters per pixel and the entire globe is captured every 5 days. However, it only sees a bird’s-eye view of the vegetation and does not measure height.

The researchers developed, trained, and deployed deep learning algorithms using data from these separate remote sensing missions to create the first global vegetation height map. The team trained an ensemble of fully convolutional neural networks (CNNs) on canopy top height from the GEDI data. Using a dataset of 600 million GEDI footprints, along with the corresponding Sentinel-2 image patches, the algorithm learns to extract canopy height from spectral and textural image patterns.

A graphic showing the steps in the CNN from using GEDI data, to Sentinel-2 image layering, to the CNN processing under sparse supervision.
Figure 1. Illustration of the model training process with sparse supervision from GEDI LIDAR. The CNN takes the Sentinel-2 image and encoded geographical coordinates as an input to estimate dense canopy top height and its uncertainty (variance).

When the models are up and running, they automatically process over 250,000 images and estimate canopy height for the map at a 10-meter ground-sampling distance. It takes 10 days to cover the globe using a high-performance cluster equipped with NVIDIA  RTX 2080 GPUs. According to Schindler, ETH Zurich’s high-performance computing system Euler, contains a variety of GPUs running over 1,500 graphics cards.

By modeling the uncertainty in the data and using an ensemble of five separately trained CNNs the models have a level of transparency not often seen in deep learning algorithms. Uncertainty is quantified for every single pixel estimate, which could give researchers and forest managers confidence when making decisions based on the information.

The researchers found that protected areas, such as the Oregon Coast Range and the Ulu Temburong National Park in Borneo often contained higher vegetation. About 34% of canopies taller than 30 meters grow in these areas.

A canopy height map showing areas on Oregon and Borneo with dense top heights reaching up to 50 meters.
Figure 2. A dense canopy height map reveals the spatial patterns of protected areas (left) Devil’s Staircase Wilderness, Oregon, and (right) Ulu Temburong National Park, Borneo.

According to the study, the model can be deployed annually to track canopy height change over time. The researchers also point out that the maps could be used to evaluate regions where wildfires have occurred, giving a more accurate map of damage.

“We hope that this work will advance future research in climate, carbon, and biodiversity modeling. We also hope that our freely available map can support the work of conservationists in practice. In the future, we would like to expand our approach to mapping biomass as well as temporal changes on a global scale,” said lead author Nico Lang, a PhD student in the EcoVision Lab, part of the Photogrammetry and Remote Sensing group at ETH Zürich. 

EcoVision also plans to make the code available soon. The lab, founded by ETH Zurich Professor Konrad Schindler and University of Zurich Professor Jan Dirk Wegner in 2017, is dedicated to developing machine learning algorithms for large-scale environmental data analysis. For more information refer to their project page, A high-resolution canopy height model of the Earth.

Read the study. >> 
Read more. >>

Categories
Misc

Custom Loss based on Input Features

I built a neural network to solve a regression problem for me. I would like to wrap a physical equation around it which depends on the input features. Instead of predicting Y directly, I want to predict a parameter alpha which is part of a physical equation.

  1. Let the model predict alpha
  2. Instead of calculating the loss as MSE(y_true, y_pred) directly, calculate y_pred as follows before (simple example): y_pred = alpha * X[0] + X[1] where X is the vector containing the model input, alpha the parameter the NN should learn.

This is how I implemented it, you can see the custom_loss function and part where I call the fit() method. This is a workflow for testing I found on stackoverflow, if you know a better method to implement something like this, great!

def custom_loss(X, alpha): # Get target observations from data y_true = X[:, 0] num = X[:2, 0] y_pred = (alpha * X[0] + X[1] ) mse = tf.keras.losses.MeanSquaredError() return mse(y_true, y_pred) model.fit(train_data["Xtrain"], np.append(train_data["Ytrain"], train_data["Xtrain"], axis=1), epochs=10000, batch_size=200, validation_data=(train_data["Xval"], np.append(train_data["Yval"], train_data["Xval"], axis=1))) 

However, my model is super unstable and doesn’t converge. Sometimes I get only NaNs as loss, sometimes the loss circles around a value but doesn’t finish the thing. Using only MSE, the model works quite well. Let’s assume the physical equation embedded in the loss function “makes sense”, this is just an example.

Did anybody do something like this before? Another problem I am facing – the input X is normalized (StandardScaler). For the physical equation to make sense, I would need the “de-normalized” values, right? How would I attempt this? scikit-learn works with numpy not with tensors I guess.

Thanks a lot!

submitted by /u/tensornoob
[visit reddit] [comments]

Categories
Misc

error: self._traceback = tf_stack.extract_stack() or self._traceback = tf_stack.extract_stack_for_node(self._c_op)

Hi,

tried to run https://github.com/JiahuiYu/generative_inpainting

is the lib version causing this error?

tried this solution https://stackoverflow.com/questions/62466877/self-traceback-tf-stack-extract-stack but not working..

so code

import neuralgym as ng trainer = ng.train.MultiGPUTrainer( num_gpus=FLAGS.num_gpus_per_job, optimizer=g_optimizer, var_list=g_vars, max_iters=FLAGS.max_iters, graph_def=multigpu_graph_def, grads_summary=False, gradient_processor=None, graph_def_kwargs={ "model": model, "FLAGS": FLAGS, "image_ref_mask_data": image_ref_mask_data, "identity_model": identity_model, "loss_type": "g", }, spe=FLAGS.train_spe, #log_dir=FLAGS.log_dir, ) 

when running in tf 1.1.5, with package:

tensorboard 1.15.0 pyhb230dea_0 tensorboard-data-server 0.6.0 py37h03978a9_2 conda-forge tensorboard-plugin-wit 1.8.1 pyhd8ed1ab_0 conda-forge tensorflow 1.15.0 gpu_py37hc3743a6_0 tensorflow-base 1.15.0 gpu_py37h1afeea4_0 tensorflow-estimator 1.15.1 pyh2649769_0 tensorflow-gpu 1.15.0 h0d30ee6_0 

got error:

 spe=FLAGS.train_spe, File " neuralgymneuralgymtrainmultigpu_trainer.py", line 25, in __init__ super().__init__(**self.context) File " neuralgymneuralgymtraintrainer.py", line 38, in __init__ self._train_op, self._loss = self.train_ops_and_losses() File " neuralgymneuralgymtrainmultigpu_trainer.py", line 75, in train_ops_and_losses gpu_id=gpu, **graph_def_kwargs) ... File " tensorflow115libsite-packageskerasenginebase_layer.py", line 489, in __call__ output = self.call(inputs, **kwargs) File " tensorflow115libsite-packageskerasenginenetwork.py", line 583, in call output_tensors, _, _ = self.run_internal_graph(inputs, masks) File " tensorflow115libsite-packageskerasenginenetwork.py", line 740, in run_internal_graph layer.call(computed_tensor, **kwargs)) File " tensorflow115libsite-packageskeraslayersnormalization.py", line 185, in call epsilon=self.epsilon) File " tensorflow115libsite-packageskerasbackendtensorflow_backend.py", line 2315, in normalize_batch_in_training epsilon=epsilon) File " tensorflow115libsite-packageskerasbackendtensorflow_backend.py", line 2288, in _fused_normalize_batch_in_training data_format=tf_data_format) File " tensorflow115libsite-packagestensorflow_corepythonopsnn_impl.py", line 1501, in fused_batch_norm name=name) File " tensorflow115libsite-packagestensorflow_corepythonopsgen_nn_ops.py", line 4620, in fused_batch_norm_v3 name=name) File " tensorflow115libsite-packagestensorflow_corepythonframeworkop_def_library.py", line 794, in _apply_op_helper op_def=op_def) File " tensorflow115libsite-packagestensorflow_corepythonutildeprecation.py", line 507, in new_func return func(*args, **kwargs) File " tensorflow115libsite-packagestensorflow_corepythonframeworkops.py", line 3357, in create_op attrs, op_def, compute_device) File " tensorflow115libsite-packagestensorflow_corepythonframeworkops.py", line 3426, in _create_op_internal op_def=op_def) File " tensorflow115libsite-packagestensorflow_corepythonframeworkops.py", line 1748, in __init__ self._traceback = tf_stack.extract_stack() 

when running in tf 2.x:

 log_dir=FLAGS.log_dir, File " ngneuralgymtrainmultigpu_trainer.py", line 25, i __init__ super().__init__(**self.context) File " ngneuralgymtraintrainer.py", line 38, in __init_ self._train_op, self._loss = self.train_ops_and_losses() File " ngneuralgymtrainmultigpu_trainer.py", line 75, i train_ops_and_losses gpu_id=gpu, **graph_def_kwargs) File " inpaint_model.py", line 203, in build_graph_with_loses surface_attention=FLAGS.surface_attention, File " inpaint_model.py", line 127, in build_inpaint_net x = gen_deconv(x, cnum, name="allconv15_upsample") File " inpaint_ops.py", line 85, in gen_deconv x = resize(x, func=tf.compat.v1.image.resize_nearest_neighbor) File " ngneuralgymopslayers.py", line 152, in resize x = func(x, new_xs, align_corners=align_corners) File "C:ProgramDataAnaconda3libsite-packagestensorflowpythonopsimage_ps_impl.py", line 4659, in resize_nearest_neighbor name=name) File "C:ProgramDataAnaconda3libsite-packagestensorflowpythonopsgen_imge_ops.py", line 3873, in resize_nearest_neighbor name=name) File "C:ProgramDataAnaconda3libsite-packagestensorflowpythonframeworkp_def_library.py", line 742, in _apply_op_helper attrs=attr_protos, op_def=op_def) File "C:ProgramDataAnaconda3libsite-packagestensorflowpythonframeworkps.py", line 3784, in _create_op_internal op_def=op_def) File "C:ProgramDataAnaconda3libsite-packagestensorflowpythonframeworkps.py", line 2175, in __init__ self._traceback = tf_stack.extract_stack_for_node(self._c_op) 

with setting:

tensorboard 2.8.0 pypi_0 pypi tensorboard-data-server 0.6.1 pypi_0 pypi tensorboard-plugin-wit 1.8.1 pypi_0 pypi tensorflow-gpu 2.8.0 pypi_0 pypi tensorflow-io-gcs-filesystem 0.25.0 pypi_0 pypi 

thanks a lot

submitted by /u/boydbuilding
[visit reddit] [comments]

Categories
Misc

BCE vs Sparse Categorical CE loss, metrics for binary segmentation

Hello,I am training a segmentation model following this link. My problem at hand is a binary segmentation 0 for background class and 1 for object of interest. I noticed the predictions are good when Sparse Categorical CE loss is used compared to BCE. Can anyone give a valid reason to why this is the case? I am under an impression that BCE suits better for binary segmentation tasks. Can you please also recommend the best metric instead of accuracy? I am currently using mean IoU as a metric for evaluation.

submitted by /u/stashpot420
[visit reddit] [comments]

Categories
Misc

Creating a Bidirectional LSTM

So I’m trying to create a bidirectional LSTM and I have this code

model.add(Bidirectional(LSTM(5, return_sequences=True), input_shape=X.shape[1]))

I keep getting the following error,

TypeError: ‘int’ object is not iterable

it is over the input_shape parameter, but I’m confused on how to fix it.

The shape of the input is (494021, 118)

The shape of the output is (494021, 5)

submitted by /u/echaney456
[visit reddit] [comments]