Question: ECE 5 9 0 Object Oriented Programming & Machine Learning Fall 2 0 2 4 Project 3 : Matrix and Tensor Operations Due: Sunday, October

ECE 590 Object Oriented Programming & Machine Learning Fall 2024 Project 3: Matrix and Tensor Operations Due: Sunday, October 27th,2024,11:59 PM I. Summary In this project, we will implement a few matrix and tensor operations for EasyNN in C++. Specifically, we will implement the following EasyNN operations: Input(n): if the input n is a scalar, it will be passed via add_kwargs_double(). Otherwise, n is a tensor and will be passed via add_kwargs_ndarray(). Const(c): if constant c is a scalar, it will be passed via add_op_param_double(). Otherwise, c is a tensor and will be passed via add_op_param_ndarray(). a+b and a-b: if a and b are both scalars, this is a scalar addition or subtraction. Otherwise, a and b are tensors with the same shape. Perform element-wise addition and subtraction to generate the result tensor of the same shape. Note that the matrix is a tensor of 2 dimensions. a*b: if a and b are both scalars, this is a scalar multiplication. If one of a and b is a scalar and the other is a tensor, multiply the scalar by each element of the tensor to generate the result tensor of the same shape. Otherwise, a and b are both matrices with correct shapes so that a*b is well-defined for matrix multiplication. II. Working with Your Projects Please continue to work with your Git repository for Project 3. Here is a brief introduction to the files: easynn.py, easynn_golden.py, easynn_cpp.py, Makefile: same as those in Project 1 and 2. You should not modify them. src: this directory contains all your C++ implementations. Update them as needed. easynn_test.cpp: continue to use this file to test and debug your C++ implementations. Start with a test that is as simple as possible and then move to more complicated cases. grade_p3.py: this is the grading script to verify whether your C++ implementations in src are correct or not. There are 10 questions. You should not modify this file. ECE 590 Object Oriented Programming & Machine Learning Fall 2024 After creating the shared library using make, run the grading script to see if all questions pass: make python3 grade_p3.py Please do not modify grade_p3 when testing your code as your grades will be tested with the original grade_p3 file provided to you from the initial git repository. III. Deliverables and Grading We obtain a copy of all your source files in src as you push the changes to the central Git repository so there is no need for you to submit them to us using any other mechanisms. Moreover, please be advised that since learning the use of Git is among the objectives of this course, we will NOT accept project submissions outside the central Git repository, e.g. via emails. If you have difficulty accessing the central Git repository, it is your responsibility to act promptly to seek help from us well before the project deadline; otherwise, not being able to access the central Git repository is NOT an excuse for late submissions. Project 3 will have a full grade of 100 points. Each function, if passed, will give you 10 points. A failed function will earn 0 points. Please make sure that git push your latest code to the Endeavour Git repository for proper grading considerations. The following submission checklist is provided for your convenience. Detailed instructions are available from Section IV of Guide to System Setup and Work Flow. Run python3 grade_p3.py in the VM to make sure all 10 tests pass. Commit and push your changes to the central Endeavour Git repository.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!