A study of model aggregator algorithms in Federated Learning

What is Federated learning (FL)? 

Distributed model training in the edge. The principle of this approach is to aggregate models learned on distributed clients in order to obtain a new, more general model. The results model is then redistributed to clients for further training. 

FL struggles with Data Heterogeneity? As each client train a model in federation with non-identical and individual (non-iid) data, during model aggregation the next version of aggregated model might have reduced accuracy when deployed in client settings due to non-iid. 

Goals of Federated Learning Model aggregator? Heterogeneity of devices and user’s challenges ML with double objective • Generalization: Achieving over all target accuracy with federated learning settings (pervasive devices). • Personalization: Achieving target accuracy on each client in AI tasks with already seen data or new data. 

Strategies adopted in Model Aggregated algorithms? Key point in federated learning is the way specialized models are aggregated at the server In case of deep learning – two families of algorithms implementing different strategies are considered • First Strategy: Emphasize generalization – aggregation algorithm considers local models and build a new model that potentially calls into question all layers and all weights associated with neurons. This approach is exemplified by FedAvg and FedMA • Second Strategy: In contrast focus more on client specialization. Thus, the algorithm does not question certain parts of the local models. Specifically, only the local models base layers are sent to the server for generalization, while the last layers are kept unchanged. This approach is exemplified by the FedPer algorithm. 

Different type of model aggregator algorithms available/used? 

        Federated Averaging: (FedAvg) • Starts with random initialization of a neural model (server is in charge of coordinating and managing model transfers with client devices) • Resulting model is sent to clients to start local training from it • When on-device training is finished the weights of the local models are sent to the server • Aggregation is done in a weighted averaging manner where clients with more data influence more significantly the newly aggregated model. • FedAvg is however, has naive form of aggregation due to its coordinate wise averaging that may lead to sub-optimal solutions. Due to non-iiD data neurons in the same coordinate may be opted for entirely different purposes due to client’s specialization • Averaging neurons that are drastically different causes decrement results. 

        Federated learning with Personalization layers (FedPer): • Similar to FedAvg the way it computes new weights in the aggregated model. • However, it differs strongly on the parts of the model that are considered during aggregation • Clients only communicate the neural model’s base layer to the server and retrain the other layers • Underlying idea is base layer deals with “representation learning” and can be advantageously shared by clients through aggregation • Upper layers are more concerned with decision making which is more specific to each client • FedPer clients better handle various inputs (in the base layers) while being able to specialize in their particular data (in the upper layers). • However, aggregated model, on the server-side is only partial and is not usable for decision-making due to missing layers • FedPer can be seen as an adaption of the Transfer Learning methodology into a federared learning scheme. Studies have shown thtat it can surpass centralized learning and FedAvg approach in the HAR field. 

      Federated Matched Averaging (FedMA): • *FedMA modifies the neural model architecture by incorporating a layer-wise aggregation process where similar neurons can be fused, and new ones can be added. • This approach treats the number of nodes in a layer as a sub-problem to solve rather than a hyper-parameter to be set as an extension to CNN and RNN • *FedMA Considers that neuron in the NN layer are permutation invariant (changing the layer/neuron order will not impact the NN output). • *The algorithm central intuition is that all clients can contain neurons that are similar and should be merged together. **All neurons in the same cluster are averaged to produce a global neuron** • [[To find out which neuron can be fused, the algorithm uses a 2D permutation matrix that is computed iteratively from increasing rank layers.]] • Experiments with deep CNN and LSTM memory architectures show that the FedMA algorithm outperforms FedAvg on CV datasets. 

    Fededated Distance (FedDist): • Novel neuron matching and detail a federated learning algorithm based on a Euclidian distance dissimilarity measurement. • This algorithm includes some elements of FedAvg and FedMA, is called Federated Distance (FedDist) for its emphasis on computing distances of neurons of similar coordinates when comparing clients and server models. • FedDist recognized, like FedMA, that some client models may diverge because of heterogeneous, non-IID data. This results in neurons that cannot be matched with neurons from other models (because of weights that are too far apart). • FedDist also recognized that the model structure is relatively stable, which means that neurons with the same coordinates play a similar role. This view provides an opportunity to build a coordinate-wise approach • FedDist identifies diverging neurons using Euclidean distances. These neurons that are specific to certain clients are added to the aggregated model as new neurons. • This new neuron adding scheme can lead to larger models that are able to generalize better. As new neurons are added to a layer, a layer-wise training round is added in order to allow the neurons in the next layers to adjust to the new incoming neurons and weights. • To do that layer with the new neuron and those below are frozen, and the subsequent layers are trained. When all layers have been treated, and a new aggregated model is computed. ◦ A global server model is computed from all clients. ◦ Outliers are identified using the Euclidean distance and added to the aggregated model. • A penalty function has also been implemented to raise the threshold as training continues to prevent the never-ending addition of new neurons. If a neuron in any of the clients holds an individual distance above the threshold, it is then added to the server model. The process is performed layer wise. At each communication round, it is performed on the first layer.

  Reference: https://arxiv.org/abs/2110.10223 Happy reading..

Tutorial: RealSense Python SDK on Ubuntu

Container Orchestration using Kubernetes (K8S) with sample code

How to recover completely broken Ubuntu 18.04

My upgrade from 16.04 ro 18.04 went super good..with below command $sudo update $sudo upgrade $sudo do-release-upgrade After this you have to bunch of Y's to continue clean install (sorry for putting short cut process here). As i faced crazy issue after that.. I tried to install another toolkit in Ubuntu 18.04 and in process somehow it deleted some systemfiles as part of python3 removeal process... This step made me to spend almost 6-8hrs of non-stop hard hitting to fix 1. First my KeyBoard and Mouse stopped working after restart 2. Had to reboot and during BIOS coming up - I had to hit "Esc" key to go to GRUB GUI 3. I selected "recovery-mode" Linux image 4. Then selected "root" shell and try to install "sudo apt-get install ubuntu-desktop" and it failed crazy because Wifi not connected at this point and "$sudo update" failed 5. then I have to use "nmcli" commands to connect to my wifi (google nmcli commands) 6. After sucessfully connecting to wifi - i was able to run "sudo apr-get update && sudo apt-get upgrade" and still "sudo apt-get install ubuntu-desktop" was failing 7. But, keyboard started working (Hope I am not missing something b/n Step 6 & 7 - w.r.t isntalling gonme package with apt-get) 8. BIGGEST challenge was "Fail to start session" when trying to login to system (THIS WAS THE MOST TIME TAKEN HARD PROBLEM) 9. I had to so much of circus to fix this - this time once I got to login screen - I entered command promopt/terminal with "CTRL + ALT + F2" 10. First tried to install "sudo apt-get install ubuntu-package" - it said I dont know what are you talking about "ubunut-package" not found 11. Then I tried to install python3 (which is the main culprit for all this hassle) - started throwing dpgk: error not able to proceed (subprocess dpkg failed etc. something like that) 12. Even "sudo dpkg --configure -a" was not working 13. Then I installed "sudo apt-get intall aptitude" 14. sudo aptitude install python3-pip 15. sudo aptitude install python3-dev (not 100% sure of this - nothing harm to in reinstalling) 16. and etc. packages - all the once which are through error by "sudo apt-get install ubuntu-desktop" in previous steps 17. During 14, 15 and 16 steps - it will ask you to give your decision on what each step/command is going to do (if you feel all looks good- you can hit 'y' or Enter) Now you should not see any dpkg errors and reboot your system and you can happily login and recover all your hard work put in this silly life so far.. Have fun....!!!! with lot of bugs and blockers - which have simple fixs.... Kudos to Communities trying to help each other....

OpenVINO DL Streamer with GStreamer - Azure Marketplace app

Deep Learning (DL) Streamer is a component of OpenVINO™ Toolkit that offers a streaming analytics framework based on GStreamer* multimedia framework for creating complex media analytics pipelines using OpenVINO Inference Engine. It provides optimal pipeline interoperability and optimized inferencing across Intel® architecture, CPU, iGPU and Intel® Movidius™ VPU.
This container provides Intel® distribution of OpenVINO™ Toolkit with DL Streamer and OvdlStreamer app that provides a configurable pipeline for object detection, tracking and classification. The app can take multiple input streams, perform object detection, tracking and classification using pre-trained models required by the OpenVINO™ toolkit Inference Engine, and send the results to Azure IoT Cloud and/as RTSP out.
Click Here to Download OpenVINO DL Streamer - Azure IoT Edge Module

Image Semantic Segmentation with OpenVINO 2020.R2






The One Hundred Layers Tiramisu:Fully Convolutional DenseNets for Semantic Segmentation


Github (OpenVINO app code) to accelerate inference of FC-DenseNet-103 on Intel HW. Best performance can be seen on Cascade Lake Xeon CPU

OpenVINO Application code
OpenVINO FC-DenseNet-103 IR model files (FP32/FP16): IR Files

Note: IR files are generated from pre-trained TF FC-DenseNet-103 model file (with accuracy ~.60)

If you want to re-train: You can use Keras train.py





Age and Gender Classification using OpenVINO 2020.R1


OpenVINO Ready To Deploy AI Vision Module


OpenVINO - Train and Deploy Neural Network (AI Model) in seconds onto IoT Edge device



Lets look at the challenges being faces by AI developers in training and deploying AI model and how OpenVINO and Azure IoT helps solve the problem

Challenges in training and deploying AI model
  • Choosing a Neural network model
  • Train/re-train till model converge (Costly and time consuming task)
  • Deploying it on Edge device (IoT device's / Laptop / Desktop )

Prerequisites/System requirements - Free Subscription, Software, Hardware and setup:
Solution:

   This Azure Marketplace (deploy) will make total end2end train and deploy onnx model in less than a minute. Application uses docker image built on OpenVINO with ONNX Run-time execution provider (EP)

Details: How it works:

Step 1: Training using customvision.ai in three simple steps 
  • Login to customvision.ai - Upload few train samples (min 25) 
  • Annotate them 
  • Do a quick train
      Ref: Getting started with customvision

Step 2: Deploying OpenVINO AI Vision Module  on to IoT Edge device
  • Click "Get It Now" on  Azure Marketplace  
  • Select device from IoT Hub to deploy 
  • Once deploy is successful - will see "OpenVINOReadyToDeployAIVisionModule" Edge module running
  • Expected output: Camera stream rendering on to display
Step 3: Passing ONNX model to the app with "Twin Updates"
  • 1.Copy "ONNX model URL from" -> customvision.ai -> select project -> Performance -> Export -> Click on ONNX -> Copy ONNX model URL
  • Goto "portal.azure.com" -> IoT Hub -> IoT Edge -> Select device
  • Click on "setmodules" -> click on -> "OpenVINOReadyToDeployAIVisionModule" 
  • Selecting "Twin Module Settings" -> pass "ONNX model URL path selected in step 3.1" to -> inference_files_zip_url (looks like inference_files_zip_url="onnx url path")
  • Finally click "Update" and "Review+Create"
  • Expected output: OpenVINO app will restart the stream and starts running inference based on the ONNX model passed (Object detection/Image classification) (Camera: Should be pointing to object/image of interest to do recognition/classifciation) Note: If no NCS2 connected, inference will start on Intel CPU  

Powered by


Note:

  • Setup is one time process - need some patients to go through cloud setup (if doing it first time) - Happy to answer any question - leave a comment    
  • Deploying (Docker pull) application will take decent time (only once per device) based on network speed
    • Note: Working on making light weight docker



Anaconda Installation on Mac with Python 3.7


Q&A on Deep Learning concepts

1.       What is Deep Learning?
Deep learning is a subset of machine learning that is concerned with neural networks.
           Deep learning represents a learning algorithm that learns representations of data through the                 use of neural nets.
2.       What is Mean?
       Mean: Average of all the numbers         
                                         

3.       What is Variance and Standard Deviation?
              Variance: The variance (σ2) is a measure of how far each value in the data set is from the                     mean. The Average of Squared difference from the mean
                                           

       Standard Deviation: Gives how spread out the numbers are
                                          

                                                  
4.       What is Perceptron?
A perceptron (type of neuron) takes serval binary inputs x1, x2,….x1,x2..and produces a               single binary output
                                 



                            
                              
5.       What is Sigmoid?
         Just like perceptron, sigmoid (type of neuron) has inputs x1,x2….But instead of just being 0          or 1 these inputs can also take values between 0 and 1. Also, just like a perceptron, the                  sigmoid neuron has weights for each input w1, w2…and an overall bias. But out is not 0 or            1, instead σ(w.x + b), sometimes call logistic function.
                                                 
                                                  



6.       What is Gradient?
            Gradient is another word for "slope". The higher the gradient of a graph at a point, the steeper             the line is at that point. A negative gradient means that the line slopes downwards. 
7.       Why “Gradient Descent”?
We learned that sigmoid takes Input X (ranging from 0 to 1), W weights and B bias values to     compute the output of a neuron. But, in order to calculate “W” and “B” we need a function to calculate them. So, Gradient Descent is one of the methods to calculate W and B values.


8.       Explain “Gradient Descent” and “Stochastic Gradient Descent (SGD)”?
           Both algorithms are methods for finding a set of parameters that minimize a cost/loss function            by evaluating parameters against data and then making adjustments.

In “Gradient Descent”: You will evaluate all the training samples for each set of parameters
In “SGD”: You will evaluate 1 training sample for the set of parameters before updating them.

Helps find which “Weights” and “Bias” number results in minimizing cost function

C(w,b) = 1/2n∑ ||y(x) – a||2

       w-> Weight, b->bias
 y(x) -> What the output (ref output) should be for input x
       a -> Output given by network for a given ‘x’, ‘w’ and ‘b’

9.       Explain “Training” a CNN model?
            Supervised -> labeling the data that model needs to be trained on
            Unsupervised Learning -> Training without labeling
           

10.   What is an epoch?
           Epoch -> is a single pass through entire data set.

11.   Explain “Back propagation”?
       An expression for the partial derivative of the Cost function (C) w.r.t to any weight (or bias).
      The expression tells us how quickly the cost changes when we change the weights and biases.

      The goal of backpropagation is to compute the partial derivatives ∂C/∂w and ∂C/∂b of the             costfunction C with respect to any weight w or bias bb in the network

      Four Fundamental Equations behind BP
      Backpropagation is about understanding how changing the weights and biases in a network           changes the cost function. Ultimately, this means computing the partial derivatives ∂C/∂wljk,         and ∂C/∂blj.

      We first introduce an intermediate quantity, δjl, which we call the error in the jth neuron in           the lth layer.

      Backpropagation will give us a procedure to compute the error δjl, and then will                             relate δlj to ∂C/∂wjkl and ∂C/∂bjl.
                                                           
                                            

                






          “BP” is about Understanding how changing weights and biases in a network changes the                cost function (ex: Output of Gradient Descent/SGD). Ultimately this mean computing the              partial derivatives of cost function w.r.t 

     The method calculates the gradient of a loss function with respect to all the weights in the              network

12.   Examples “Cost Functions”?
   “Gradient Descent”, “Stochastic Gradient Descent (SGD)”, L1 Regularization, and L2                    Regularization

13.   What are “Activation Functions”?
               Softmax: Its similar to Sigmoid   , 
               but with different function  
                                       




14.   What are hyper parameters and How to select “Hyper Parameters”?
              Learning rate, epoch(s), batch size (how many samples to process per iteration of training) 
              Regularization Parameter 

15.   How to initialize “weights” and “biases” for given network/model? why?
             Generally “Weights” and “Biases” are initialized randomly using Gaussian Distributions with               Mean=0 and Standard Deviation=1

              Why?? Ex: if you have 1000 input nodes and assume that you zeroed 500 samples and for                   reaming samples standard deviation is 501 (500 samples  + 1 bias) => 22.4…as shown                       below that is z  (w.x+b) has a very bad Gaussian Distribution, not sharply peaked

              


16.   When do you stop “training”?
       Neg case: If cost not going down (or) test accuracy is not improving (or) during overfitting            (Cost decrease but Accuracy doesn’t improve)
       Positive Case: If desired accuracy is reached

17.   What is Overfitting? How to avoid it?
     When Network shows decrease in cost, but accuracy does not change as expected w.r.t                 decrease in cost. In this scenario we say network is overfitting or overtraining.

     We need to check how Cost of train and test data varying as the network learns. If you see              opposite scenario (Cost of Training set going down and Cost of Test set going up) it’s a                  indication of Overfitting (Network not learning from dataset)

     Another sign is classification of training data set. If accuracy on training data set is 100% and        test data set is ~80%. It means that network memorizing training samples (not actually                  learning it features).

     The obvious way to detect overfitting is to use the approach above, keeping track of accuracy        on the test data as our network trains. If we see that the accuracy on the test data is no longer        improving, then we should stop training.* It might be that accuracy on the test data and the            training data both stop improving at the same time. Still, adopting this strategy will prevent            overfitting.
      
  •        Increasing the amount of training data is one way of reducing overfitting – Not always possible
  •     Using Regularization techniques, weight decay or L2 regularization. The idea of L2                       regularization is to add an extra term to the cost function, a term called the regularization term

                



18.   What is “dropout”?
      “Dropout” is another technique to remove “Overfitting”. It does not change Cost function as          done by L1 and L2, instead it changes the network itself.

      During training we forward-propagate input ‘x’ through the network and then back propagate       to compute the “gradient”. With dropout, this process is modified. We start by randomly                 removing hidden neurons in the network, while leaving the input and output neurons                     untouched and we repeat this process by randomly adding back previously removed hidden           neurons and removing other mini-batch of hidden neurons. We keep repeating this process             and calculating gradient and updating weights & biases in the network. 

19.   What is L1 and L2 norm?
              L1-norm is also known as least absolute deviations (LAD), least absolute errors (LAE). It is                 basically minimizing the sum of the absolute differences (S) between the target value (Yi)                   and the estimated values (f(xi)):
                                               
                                       

             L2-norm is also known as least squares. It is basically minimizing the sum of the square of                 the differences (S) between the target value (Yi) and the estimated values (f(xi):
                                                
20.   Difference between L1 and L2 Regularization?
          L1 regularization shrinks the weight much less than L2 regularization does

21.   Explain “Precision” and “Recall”? (Ex: Face Detection)
               TP -> Correctly detected faces
               FP -> detecting non-face as faces
               FN -> No.of.faces missed

              Precision -> Percentage of identified faces that are correct (TP)/ ((TP + FP))
              Recall -> Percentage of correctly detected faces to the total no of faces (TP)/ (TP + FN))


22.   Formula to compute size of Layers?
             Output size = [((Width – Kernel Size + 2*Padding)/Stride ) + 1]

23.   How to calculate no.of.operations per layer (FLOPS)?
        (Kernel W X Kernel H X Output No.of features X No.of channels of input image X Image W X H)

24.   How would you handle an imbalance data set?
Try collecting more data to even the imbalances
Resample the dataset to correct the imbalance
Try different algorithm altogether on your dataset

25.   When should you use “classification” over “regression”?

           Classification produces discrete values and dataset to strict categories, while regression gives              you continuous results that allow you to better distinguish differences between individual                    points. You would use classification over regression if you wanted your results to reflect the                belongingness of data points in your dataset to certain explicit categories (ex: If you wanted to            know whether a name was male or female rather than just how correlated they were with male            and female names.)


Please leave a comment, if have any questions on above Q&A (or) Want to ask any new Question on this topic of Deep Learning.

Happy Reading.

How to parse caffemodel file


Written a python script which helps to parse "weights" and "biases" of each layer from a pretrained ".caffemodel" file

github : CaffeModelFileParser 

Leave a comment, if any questions

Caffe2 - Deep Learning framework




Caffe is Machine Learning framework from BVLC

Caffe2 is newer release from BVLC,  A New Lightweight, Modular, and Scalable Deep Learning Framework

Website : caffe2 github

Leave comment, if any questions

Python code to convert jpg to rgb format

Below utility will help convert
jpeg file to rgb file format

Any question leave a comment.

Save the code to a file "jpg2rgb.py"

How to use: python jpg2rgb.py      


import cv2
import os, sys
import numpy as np
import argparse


def convert_jpg2rgb(ipfile, opfile):

    # Decoding input jpeg file
    ipimg = cv2.imread(ipfile, cv2.IMREAD_COLOR)

    # Shape of input image
    w, h, d = ipimg.shape

    # Reading clip name
    s = ipfile.split('\\')
    clip_name = str(s[len(s)-1])

    s = clip_name.split('.')
    clipName = str(s[0])
   
    # Reading B, G, R buffers
    b, g, r = cv2.split(ipimg)

    opimg = open(opfile + '/' + str('rgb_') + str(clipName) + str('.rgb'), 'wb')

    for i in range(0, h):
        for j in range(0, w):
            opimg.write(r[i,j])
            opimg.write(g[i,j])
            opimg.write(b[i,j])
    opimg.close()

    return True

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('ip_jpg', help="Path to Input jpg file")
    parser.add_argument('op_rgb', help="Path to save rgb file")
   
    args = parser.parse_args()
    return args

if __name__ == "__main__":
 
    args = parse_args()

    ip_jpg_file = args.ip_jpg

    if not os.path.isfile(ip_jpg_file):
        print "jpg file Not found\nExiting..."
        sys.exit()
       
    op_rgb_file = args.op_rgb
    if not os.path.isdir(op_rgb_file):
        print "Invalid path\nExiting..."
        sys.exit()

    if(convert_jpg2rgb(ip_jpg_file, op_rgb_file)):
        print "Conversion Sucessful"
    else:
        print "Conversion Failed"


Face Recognition - Machine Learning - Deep Neural Networks





Face Recognition is very hard problem to solve using traditional CV techniques considering hard real world scenarios lighting, camera angle etc

Far better accuracy can be achieved in Face Recognition using Deep Neural Networks called Openface an opensource free software from Carnegie Mellon university

I have been working on this for couple of months now and very impressed with the outcome

To Try it out -

Follow these steps

Introduction - https://cmusatyalab.github.io/openface/
Code - https://github.com/cmusatyalab/openface
Torch - Frameworks - http://torch.ch/docs/getting-started.html#_
Training and classification - https://cmusatyalab.github.io/openface/demo-3-classifier/

System requirements
---------------------------

Linux 12+
Python 2.7+ with additional dlib, sckit packages
CudNN drivers - If using nvidia GPU

Any questions with setup or how to ..
please leave a comment will help you.



Computer Vision with MATLAB for Object Detection and Tracking

View this email as a web page. 
To ensure our emails reach your inbox, add the domain @em.mathworks.com to your safe sender list. Learn more.
MathWorks
Dear Pradeep Sakhamoori
MathWorks India invites you to a complimentary webinar:

Computer Vision with MATLAB for Object Detection and Tracking

8 May 2013
3:00 PM IST (India Standard Time)
Computer vision uses images and video to detect, classify, and track objects or events in order to understand a real-world scene. In this webinar, we dive deeper into the topic of object detection and tracking. Through product demonstrations, you will see how to:
  • Recognize objects using SURF features
  • Detect faces and upright people with algorithms such as Viola-Jones
  • Track single objects with the Kanade-Lucas-Tomasi (KLT) point tracking algorithm
  • Perform Kalman Filtering to predict the location of a moving object
  • Implement a motion-based multiple object tracking system
This webinar assumes some experience with MATLAB and Image Processing Toolbox. We will focus on the Computer Vision System Toolbox.
About the Presenter: Bruce Tannenbaum works on image processing and computer vision applications in technical marketing at MathWorks. Earlier in his career, he developed computer vision and wavelet-based image compression algorithms at Sarnoff Corporation (SRI). He holds an MSEE degree from University of Michigan and a BSEE degree from Penn State.
REGISTER now
Invite a Colleague

Register for this webinar.

MATLAB Digest - March 2013


Overcome your signal line frustration with smart signal routing in Simulink. View this issue online.
News for the MATLAB and Simulink communityMarch 2013

Subscribe
Share thisShare on FacebookTweet this!Share on LinkedIn
Contact us
Developing a Universal Receiver Test Platform for Satellite Digital Radio and Other Broadcast StandardsDeveloping a Universal Receiver Test Platform for Satellite Digital Radio and Other Broadcast Standards
Forecasting GDP with a Dynamic Factor ModelForecasting GDP with a Dynamic Factor Model
Finding, Creating, and Sharing MATLAB AppsFinding, Creating, and Sharing MATLAB Apps
Watch videoDeveloping an Onboard Trainer Plant Simulation for the Royal Navy
Watch video

MATLAB Virtual Conference 2013 - Register

MATLAB Central Community Highlights
Books
Guy and Seth on Simulink: Smart Signal Routing
Popular MATLAB Examples
1Manipulating Multidimensional Arrays in MATLAB
2MATLAB Plot Gallery
3Quantitative High-Throughput Gene Expression Imaging
4FX Forward Pricing Using Covered Interest Parity
5Customizable Heat Maps
DSP Architecture Design Essentials
Computational Finite Element Methods in Nanotechnology
Browse more than 1500 titles
Featured Products
Release 2013a includes new features in MATLAB and Simulink, two new products, and updates to 82 products
Release 2013a includes new features in MATLAB and Simulink, two new products, and updates to 82 products
Cloud Storage for MATLAB Mobile
Try MathWorks products
MarketMap Analytic Platform from SunGard
Store, manage, and analyze intraday and high-volume, time-series data
Upcoming Events and Training



Training
MATLAB Fundamentals
1-3 Apr 2013   Delhi
15-17 Apr 2013   Bangalore
23-25 Apr 2013   Online
Simulink for System and Algorithm Modeling
4-5 Apr 2013   Delhi
18-19 Apr 2013   Bangalore
7-8 May 2013   Online
MathWorks


Related Posts

Twitter Updates

Random Posts

share this post
Bookmark and Share
| More
Share/Save/Bookmark Share