Here is a list of Frequently Asked Questions about the DLS Courses, the assignments and other course related topics.
- Get a clean copy of an assignment
- All my previous work has disappeared!
- Name errors on predefined functions
- When to use np.multiply or np.dot
- Missing “Submit Assignment” button
- Source code for utility functions
- Access to assignments after completing the courses
- Managing course deadlines
- ML/DL textbooks
- Derivation of back propagation
- Symmetry Breaking
- Formatting mathematical formulas
- Adding cells to a notebook
- Coursera Help Center
- Move your topic to the right category
- Grader errors
Yes, please see this topic. Please note that the same procedure is applicable if you want to make sure that you have the latest version of any of the notebooks or supporting files.
That usually means the course staff has published a new version of that notebook with some improvements. In most cases, your work has been saved and you can recover it. From the updated version of the notebook, click “File → Open” which gives you a “file navigation” view of the assignment. You should see another version of the notebook that has the date and time interpolated into the name: that’s the previous version containing your saved work. Click that one to open it. Then go back to the Programming Assignment tab and click Work in Browser again. Now you’ve got two parallel browser tabs showing your previous worked notebook and the new clean one. Carefully go through and “Copy/Paste” your completed code from the previous version to the new version. It’s important that you do that so that you are using the latest version of the notebook with the fixes that the course staff just published. Make sure to click “Save” when you’re finished copying everything and you should be all converted over to the new version.
But please note that sometimes the assignment updates that are extensive enough that previous student work does not carry over. In those cases, the only way to recover your work is to have manually saved a local copy of any completed notebooks. Saving your work locally is highly recommended just on general principles. There is a Reading Item in Course 1 Week 2 that shows how to do that. Here is a thread that shows how to save all the files associated with an assignment, not just the notebook itself.
If you get an undefined error for a function or variable defined earlier in the notebook, it means you need to execute the earlier cells first. Try “Cell → Run All Above” and then rerun the failing cell. Note that you need to run all the cells again every time you close and reopen one of the notebooks or restart the “kernel”.
Also note that just typing new code into a function cell and then calling the function again does nothing: it runs the old code again. You need to click “Shift-Enter” on the cell with the new code in order for the new version of the code to be loaded into the runtime image of the notebook.
These and other points about how the Jupyter Notebooks work are covered in some detail in the lecture called “A Quick Tour of the Jupyter Notebooks” in DLS C1 W2. There is a similar tour of the notebooks in Week 1 of MLS C1. If you skipped that video the first time through, it’s worth a look.
Here’s a thread which discusses that. Note that Prof Ng will always use “*” when he means “elementwise” multiply. In numpy “*” and np.multiply are two different ways to write elementwise multiply.
Note that the “Submit Assignment” button will usually not show up if you have renamed the notebook. Also note that if you do see the button in a version with a different name, clicking it submits the “official” notebook (the one opened by the “Work in Browser” link), not the one you are currently running.
If you are running the graded notebook and don’t see the button, the first thing to try is “Kernel → Restart and Clear Output”. If that doesn’t restore the “Submit Assignment”, then also try closing and reopening the notebook. Try using a different computer or moving to a different network, especially if you are on a work or school network that may have restrictive IT policies.
This can also be caused by browser issues. If you are using a browser other than Chrome, please try switching to Chrome. Also try using an “incognito” window and clearing your browser cache. If that still doesn’t work, try the “Get a fresh copy” procedure earlier on this thread and then “copy/paste” your solutions over to the clean copy.
If none of these suggestions work, then please create a thread about this and it may be necessary to get the course staff or Coursera to take a look at your situation.
Click "File → Open " and that will give you a file navigation view of the files for the current notebook. You can tell the file names to look for by examining the “import” cell early in the notebook. For example, the functions used to test your code in the notebook are usually in a file called
Once you have successfully completed the specialization, your payment will automatically stop and after a few weeks you will also automatically lose access to the course assignments. The exact timing depends on the monthly renewal date for your subscription, but there is apparently no way to stop this from happening. It is also important to keep in mind that there is no option to re-enroll or continue payment for the course after completion. If you would like to continue to have access to the assignments after completion, you need to download all of the notebooks and associated files to your local computer before you lose access. The safest thing to do is to download each assignment once you’ve completed it (see below for instructions). That also gives you a backup copy in case there are any server problems. Note that the lectures and the Discourse forum discussions remain available even after you lose access to the assignments.
Here is a thread about how to download all the files associated with one of the assignments. There is no method for downloading all the assignments of a given course in one shot, so you’ll need to do each one individually.
Yes, the deadlines here are just “advisory” and there is no penalty for missing them. Just work at whatever pace makes sense for you given your other time commitments. If you hit one of the deadlines, you’ll get a notification and can use the “Push End Date” option as shown to reset to a later deadline with no effect on your grades:
Here’s a thread with links to various ML/DL text books.
Prof Ng has specifically designed this course so that it does not require knowledge of matrix calculus in order to follow the material. Of course that also means we have to take a lot of the formulas on faith and don’t get to see why they turn out the way they do. If you have the math background and want to dig deeper, here’s a thread with some links to get started on that.
In Week 2 of Course 1, we successfully train a Logistic Regression model by starting with all zeros for the w and b weights and bias values. But when we get to Week 3, Prof Ng tells us we need to use random initialization of the parameters instead of using all zeros. Why does using all zeros work for Logistic Regression, but not for real Neural Networks? Please see this thread for a detailed discussion of this question.
Discourse supports LaTeX rendering by using the MathJax plugin. Just enclose your LaTeX expression with single dollar signs on each side. For example:
sin^2x + cos^2x = 1
was produced by entering the following without the backslashes:
\$sin^2x + cos^2x = 1\$
Yes, you can use “Insert → Cell Below” to do that. Note that this could confuse the grader in some cases, so the best practice is to add this comment as the first line in any added cells:
# START SKIP FOR GRADING
First go to this page and use the search bar in the top corner to search for discussions relevant to your questions.
If you don’t find a sufficient answer, click the log in button at the top corner of that page and log in to your Coursera account. Then click the chat icon at the bottom corner of that page. Note that chat should be available for learners with Coursera Plus, an active course or specialization subscription or an active free trial. It also is dependent on how much traffic they are getting at the time.
If you can’t log in or if chat isn’t available, fill in this form to contact them by email.
Click on the “pencil” icon next to your topic heading:
Click on the drop down and then you can search in the search bar for the right topic (or scroll through the list to select it):
Be sure to save your changes by clicking the “checkmark” button when you are finished.
This can be caused if the notebook output cells contain large amounts of data, like an audio recording or generated graphics.
First check that your code passes all of the notebook tests and matches all of the expected results. If all the tests pass, then please try this sequence of commands:
Kernel -> Restart & Clear Output
File -> Save and Checkpoint
The grader does not need to see your generated output: it only needs to call your functions. The above sequence will minimize the size of your notebook which can also help when the servers are busy.
Grader Error: Grader feedback not found
This error can also be caused by the notebook image being too large and containing syntax that confuses the grader. The first thing to try is the three steps shown above start with
Kernel -> Restart & Clear Output. If that fails, then it may be that some of the “metadata” in your notebook is damaged. The next step is to get a clean copy of the notebook as shown in the first FAQ entry and then carefully “copy/paste” over your completed code into the clean copy and try submitting again.
Comment line with index: UNQ_C3
wasn't found in code
This error is caused by removing one of the comment lines given in the template function code cells. The grader uses those comment “tags” to identify the graded cells in some of the notebooks. Please be careful when modifying anything outside the “YOUR CODE HERE” segments in the template code in the notebooks. It’s not illegal to add or change things outside those bounds, but you need to be careful and understand the parts that the grader may use. You can recover lost or modified lines by getting a clean copy of the notebook as described here.