-
Notifications
You must be signed in to change notification settings - Fork 0
/
ObjectClassification.html
154 lines (132 loc) · 54.8 KB
/
ObjectClassification.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!DOCTYPE html>
<html data-ng-app="udacity.grading" data-enforce-browser="" class="ng-scope" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style><style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}</style><style type="text/css">@charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>
<!--[if lte IE 9]>
<script type="text/javascript">
window.location = 'https://www.udacity.com/upgrade';
</script>
<![endif]-->
<title>Udacity Reviews</title>
<meta charset="UTF-8">
<link rel="shortcut icon" href="https://review.udacity.com/assets/images/favicon.ico">
<meta name="description" content="Discover online classes taught by top instructors and industry experts. Take courses at your own pace.">
<meta name="robots" content="noodp">
<!--
These properties are here so social shares of review pages works
properly. We decided to let them apply to every page on the site
because we only expect people to share the review pages.
Guidelines obtained from https://moz.com/blog/meta-data-templates-123
-->
<!-- facebook -->
<meta property="og:title" content="Look at my Udacity Project Feedback!">
<meta property="og:description" content="A review of my work and personalized tips to improve.">
<meta property="og:image" content="https://s3-us-west-1.amazonaws.com/udacity-content/images/reviews/facebook-thumbnail-neutral.png ">
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@udacity">
<meta name="twitter:title" content="Udacity Project Feedback">
<meta name="twitter:description" content="A review of my work and personalized tips to improve.">
<!-- "Twitter Summary card images must be at least 120x120px" -->
<meta name="twitter:image" content="https://s3-us-west-1.amazonaws.com/udacity-content/images/reviews/twitter-thumbnail-neutral.png ">
<meta name="application-name" content="Udacity">
<meta name="msapplication-TileColor" content="#FFFFFF">
<meta name="msapplication-TileImage" content="assets/img/logos/udacity/windows_tile/udacity-full-144x144.png">
<meta name="google-site-verification" content="ELX2btu3VElBKIdvkGj5ESBnJh_Dg9PnWjuCwVkPEkA">
<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="https://review.udacity.com/assets/images/apple-touch-icon.png">
<link type="text/plain" rel="author" href="http://udacity.com/humans.txt">
<link href="ObjectClassification_files/css_002.css" rel="stylesheet" type="text/css">
<link href="ObjectClassification_files/css.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="ObjectClassification_files/udacity-base.css" type="text/css">
<!-- ngIf: googleBranded -->
<!-- inject:css -->
<link rel="stylesheet" href="ObjectClassification_files/grading_29bb7e1c.css">
<!-- endinject -->
<style>
@font-face {
font-family: 'Glyphicons Halflings';
src: url('/assets/fonts/glyphicons/glyphicons-halflings-regular.eot');
src: url('/assets/fonts/glyphicons/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.woff2') format('woff2'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.woff') format('woff'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
</style>
<script src="ObjectClassification_files/airbrake.js" async=""></script><script src="ObjectClassification_files/airbrake.js" async=""></script><script type="text/javascript" async="" src="ObjectClassification_files/amplitude-3.js"></script><script type="text/javascript" async="" src="ObjectClassification_files/analytics.js"></script><script type="text/javascript">
var segment_write_key = "toT8LUD8hh9KKz18k1i8l8AnAJlF27VY"; // production key for segment
</script>
<script type="text/javascript">
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.1.0";
analytics.load(segment_write_key);
}}();
</script>
</head>
<body data-modal-anti-scroll-helper="" class="responsive ng-class:{'google-certs': googleBranded} ng-scope" ng-controller="MainCtrl as main">
<!-- ngInclude: main.pageContext.headerURL --><div ng-include="main.pageContext.headerURL" class="ng-scope"><header class="navbar site-nav navbar-inverse navbar-static-top ng-scope" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only ng-scope" translate="">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="logo navbar-brand" href="https://udacity.com/" id="header-logo"> <img alt="Udacity Logo" src="ObjectClassification_files/logo.svg"> </a> </div> <nav class="navbar-collapse collapse text-center-xs" id="navbar-collapse" role="navigation"> <ul class="nav navbar-nav navbar-right"> <!-- ngIf: isGrader() --> <!-- ngIf: isGrader() --> <li> <a data-ng-click="main.logout()" href="" translate="" class="ng-scope">Logout</a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <ul class="dropdown-menu"> <a data-ng-click="main.logout()" href="" translate="" class="ng-scope">Logout</a> </ul> </li> </ul> </nav> </div> </header> </div>
<div id="page-content" data-qualaroo-survey-info-hack="">
<div loading-container="" class="container-fluid"><div ng-show="loading" class="row ng-hide"> <div class="col-sm-6 col-sm-offset-3 text-center"> <div class="row row-gap-huge"></div> <img src="ObjectClassification_files/loading.gif"> <div class="row row-gap-huge"></div> </div> </div> <div ng-show="!loading" class=""> <div ng-transclude="">
<div class="row row-gap-medium ng-scope ng-isolate-scope ng-hide fadeOutUp animated" ng-show="!!message && !dismissed" ng-class="{fadeInDown: !!message, fadeOutUp: dismissed, animated: !!message || dismissed}" alert-box="" style=""> <div class="col-md-offset-2 col-md-8"> <div class="alert hr-slim alert-info"> <button type="button" ng-click="dismiss()" class="close" aria-label="Close"> <span aria-hidden="true">×</span> </button> <span ng-bind-html="message" class="ng-binding"></span> </div> </div> </div>
<!-- uiView: --><div ui-view="" autoscroll="true" class="ng-scope"><div class="row ng-scope"> <div class="col-xs-12 col-lg-10 col-lg-offset-1"> <!-- ngIf: submission.previous_submission_id --> <div class="review-header"> <div class="project-label text-uppercase text-center ng-scope" translate="">Project</div> <div class="project-name text-center ng-binding">Object Classification</div> <!-- ngIf: currentProject.nanodegree_title --><div class="nanodegree-link text-center ng-binding ng-scope" ng-if="currentProject.nanodegree_title"> A part of the Deep Learning Nanodegree Foundation Program </div><!-- end ngIf: currentProject.nanodegree_title --> </div> <div class="row row-gap-medium"></div> <div class="review-container"> <ul class="nav nav-tabs nav-justified ng-hide" ng-show="isUngradeable()"> <li ng-class="{'active': isCurrentTab('feedback')}" class="" style=""> <a href="" ng-click="showTab('feedback')" class="ng-binding">Project Review</a> </li> <li ng-class="{'active': isCurrentTab('notes')}"> <a href="" ng-click="showTab('notes')" class="ng-binding">Notes</a> </li> </ul> <ul class="nav nav-tabs nav-justified" ng-hide="isUngradeable()"> <!-- ngIf: hasFeedback --><li ng-if="hasFeedback" ng-class="{'active': isCurrentTab('feedback')}" class="ng-scope" style=""> <a href="" ng-click="showTab('feedback')" class="ng-binding">Project Review</a> </li><!-- end ngIf: hasFeedback --> <!-- ngIf: showCode --><li ng-if="showCode" ng-class="{'active': isCurrentTab('code')}" class="ng-scope active" style=""> <a href="" ng-click="showTab('code')" class="ng-binding"> Code Review <!-- ngIf: commentsCount > 0 --> </a> </li><!-- end ngIf: showCode --> <!-- ngIf: annotation_link --> <li ng-class="{'active': isCurrentTab('notes')}"> <a href="" ng-click="showTab('notes')" class="ng-binding">Notes</a> </li> <!-- ngIf: userCanCreateAudits() && !auditTabState.visible --> <!-- ngIf: auditTabState.visible --> </ul> <div class="row review-tab-body"> <div class="col-sm-10 col-sm-offset-1"> <div ng-show="isUngradeable()" class="ng-hide"> <div class="row row-gap-medium"></div> <section ng-show="isCurrentTab('feedback')" class="ng-hide" style=""> <div class="ungradeable-tab"> <h3 class="result-label ng-scope" translate="">Unable to review</h3> <p class="ungradeable-info ng-scope" translate="">Your project could not be reviewed. Please resubmit after you address the issue noted by the reviewer.</p> <p class="result-reason ng-isolate-scope" marked="submission.result_reason"></p> <div class="row row-gap-small"></div> <!-- ngIf: isResubmittable() --> <!-- ngIf: submission.archive_url --><div ng-if="submission.archive_url" class="row row-gap-small ng-scope"> <div class="col-xs-12 text-center wide-and-bold"> <a href="https://udacity-reviews-uploads.s3.amazonaws.com/_submissions/zipfile/764904/imageclassification_reviewchanges.zip" download="" class="ng-binding"><img src="ObjectClassification_files/download-icon.svg" class="img-initial icon-medium">Download project files</a> </div> </div><!-- end ngIf: submission.archive_url --> <!-- ngIf: submission.url --> <div class="row row-gap-small"> </div> </div> </section> <section ng-show="isCurrentTab('notes')" class="ng-hide"> <!-- ngIf: pastReviews !== undefined --><div reviews-list="" ng-if="pastReviews !== undefined" reviews="pastReviews" this-review="submission" class="ng-scope ng-isolate-scope"><h2 class="review-list-name current-review-name h-slim"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" class="ng-binding ng-scope"> Review #2 </span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span class="ng-binding"> (this review)</span> </h2> <!-- ngIf: thisReview.completed_at --><small class="text-muted ng-scope" ng-if="thisReview.completed_at"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span> <span am-time-ago="thisReview.completed_at">1 month ago</span></span> </small><!-- end ngIf: thisReview.completed_at --> <!-- ngIf: !thisReview.completed_at --> <div class="text-uppercase submission-notes-header ng-scope" translate="">student notes</div> <div class="submission-notes ng-isolate-scope" marked="thisReview.notes || '_None provided_'"><p>Made the changes as per review comments. Please review. Thanks</p>
</div> <!-- ngIf: filteredReviews.length > 1 --><hr ng-if="filteredReviews.length > 1" class="ng-scope"><!-- end ngIf: filteredReviews.length > 1 --> <!-- ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-12"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --><span class="review-list-name ng-binding ng-scope" ng-if="thisReview && thisReview.id === review.id"> This review <!-- ngIf: review.previous_submission_id --> </span><!-- end ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1 month ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-12"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --><a class="review-list-name ng-binding ng-scope" ng-if="!(thisReview && thisReview.id === review.id)" ui-sref="reviews-show({submissionId: review.id, audit: null})" target="_blank" href="#!/reviews/763349"> Review #1 <!-- ngIf: review.previous_submission_id --> </a><!-- end ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1 month ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --> <div class="row row-gap-large"></div> </div><!-- end ngIf: pastReviews !== undefined --> </section> </div> <div ng-hide="isUngradeable()" class=""> <div class="row row-gap-medium"></div> <section ng-show="isCurrentTab('notes')" class="ng-hide"> <!-- ngIf: pastReviews !== undefined --><div reviews-list="" ng-if="pastReviews !== undefined" reviews="pastReviews" this-review="submission" class="ng-scope ng-isolate-scope"><h2 class="review-list-name current-review-name h-slim"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" class="ng-binding ng-scope"> Review #2 </span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span class="ng-binding"> (this review)</span> </h2> <!-- ngIf: thisReview.completed_at --><small class="text-muted ng-scope" ng-if="thisReview.completed_at"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span> <span am-time-ago="thisReview.completed_at">1 month ago</span></span> </small><!-- end ngIf: thisReview.completed_at --> <!-- ngIf: !thisReview.completed_at --> <div class="text-uppercase submission-notes-header ng-scope" translate="">student notes</div> <div class="submission-notes ng-isolate-scope" marked="thisReview.notes || '_None provided_'"><p>Made the changes as per review comments. Please review. Thanks</p>
</div> <!-- ngIf: filteredReviews.length > 1 --><hr ng-if="filteredReviews.length > 1" class="ng-scope"><!-- end ngIf: filteredReviews.length > 1 --> <!-- ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-12"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --><span class="review-list-name ng-binding ng-scope" ng-if="thisReview && thisReview.id === review.id"> This review <!-- ngIf: review.previous_submission_id --> </span><!-- end ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1 month ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-12"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --><a class="review-list-name ng-binding ng-scope" ng-if="!(thisReview && thisReview.id === review.id)" ui-sref="reviews-show({submissionId: review.id, audit: null})" target="_blank" href="#!/reviews/763349"> Review #1 <!-- ngIf: review.previous_submission_id --> </a><!-- end ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1 month ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --> <div class="row row-gap-large"></div> </div><!-- end ngIf: pastReviews !== undefined --> </section> <section class="code-section" ng-show="isCurrentTab('code')" style=""> <!-- ngIf: files && currentRubric --><div code-review="" ng-if="files && currentRubric" files="files" rubric="currentRubric" allow-comments="false" class="ng-scope ng-isolate-scope"><div ng-show="allowComments" class="ng-hide"> <input class="form-control ng-pristine ng-untouched ng-valid ng-empty" ng-model="filterPattern" placeholder="File filter (e.g. "readme.md", ".css", "src/lib/*.js")" type="text"> <div class="row row-gap-small"></div> </div> <!-- ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">report.html</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --> </div><!-- end ngIf: files && currentRubric --> <div class="row row-gap-medium"></div> </section> <section ng-show="isCurrentTab('annotation')" class="ng-hide"> <div class="row row-gap-large"> <div class="col-xs-12 annotation-text ng-scope" translate="">Your reviewer has provided annotations for your project</div> </div> <div class="row row-gap-medium"> <div class="col-xs-12"> <a class="btn btn-primary btn-sm ng-binding" href="" download="" _target="_blank">Download annotations</a> </div> </div> <div class="row row-gap-huge"></div> </section> <!-- ngIf: critiquesAccessor --><section ng-if="critiquesAccessor" ng-show="isCurrentTab('feedback')" class="ng-scope ng-hide" style=""> <!-- ngIf: isSubmissionByCurrentUser() --><div social-share="" ng-if="isSubmissionByCurrentUser()" user-type="'student'" button-hashtag="hashtag" url="getShareableUrl()" prompt="'Share your accomplishment'" text="'Just received helpful feedback on my project from a @Udacity reviewer!'" class="ng-scope ng-isolate-scope"><div class="share-table hidden-xs"> <div class="share-prompt ng-binding"> Share your accomplishment </div> <div class="pull-right"> <a ng-click="showTwitterPopup()" class="btn btn-xs"> <img src="ObjectClassification_files/twitter.svg"> </a> <a ng-click="showFacebookPopup()" class="btn btn-xs"> <img src="ObjectClassification_files/facebook.svg"> </a> </div> </div> <div class="btn-block share-table visible-xs ng-binding"> Share your accomplishment! <a href="" ng-click="showTwitterPopup()"><img src="ObjectClassification_files/twitter.svg"></a> <a href="" ng-click="showFacebookPopup()"><img src="ObjectClassification_files/facebook.svg"></a> </div> </div><!-- end ngIf: isSubmissionByCurrentUser() --> <!-- ngIf: isSubmissionGradedByCurrentUser() --> <!-- ngIf: hasFeedback && submission.result --><div ng-if="hasFeedback && submission.result" class="ng-scope"> <h3 class="result-label h-slim-top ng-binding"> Meets Specifications </h3> <!-- ngIf: doesNotMeetCount > 0 --> </div><!-- end ngIf: hasFeedback && submission.result --> <!-- ngIf: submission.general_comment --><div ng-if="submission.general_comment" class="row row-gap-medium ng-scope"> <div class="col-xs-12 ng-isolate-scope" marked="submission.general_comment"><p>It's an outstanding work! Well done on taking previous reviewer's remarks and incorporating them into your work. Keep it up!</p>
<p>I suggest you check out the following <a href="http://cs231n.github.io/neural-networks-2/" target="_blank">Stanford CS231n resource</a> on general advice about training neural networks. It has a number of great tips.</p>
</div> </div><!-- end ngIf: submission.general_comment --> <div critiques-editor="" critiques-accessor="critiquesAccessor" editable="false" class="ng-isolate-scope"><!-- ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Required Files and Tests </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The project submission contains the project notebook, called “dlnd_image_classification.ipynb”.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>All the unit tests in project have passed.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>Well done! All unit tests have passed!</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Preprocessing </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>normalize</code> function normalizes image data in the range of 0 to 1, inclusive.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>Good job! Here's an alternative definition, ensuring that the output values lie in 0-1 range irrespective of the input matrix:</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">normalize</span><span class="hljs-params">(x)</span>:</span>
min_value, max_value = x.min(), x.max()
<span class="hljs-keyword">return</span> (x-min_value) / (max_value-min_value)
</code></pre></div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>one_hot_encode</code> function encodes labels to one-hot encodings.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>Great! For the sake of learning, here's an alternative solution:</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">one_hot_encode</span><span class="hljs-params">(x)</span>:</span>
num_examples, num_classes = len(x), <span class="hljs-number">10</span>
one_hot = np.zeros((num_examples, num_classes))
one_hot[np.arange(num_examples), x] = <span class="hljs-number">1</span>
<span class="hljs-keyword">return</span> one_hot
</code></pre></div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Neural Network Layers </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The neural net inputs functions have all returned the correct TF Placeholder.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>conv2d_maxpool</code> function applies convolution and max pooling to a layer.</p>
<p>The convolutional layer should use a nonlinear activation.</p>
<p>This function shouldn’t use any of the tensorflow functions in the tf.contrib or tf.layers namespace.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>flatten</code> function flattens a tensor without affecting the batch size.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>fully_conn</code> function creates a fully connected layer with a nonlinear activation.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>output</code> function creates an output layer with a linear activation.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Neural Network Architecture </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>conv_net</code> function creates a convolutional model and returns the logits. Dropout should be applied to alt least one layer.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>It's a decent architecture for this problem! I recommend the following <a href="https://medium.com/towards-data-science/neural-network-architectures-156e5bad51ba" target="_blank">blog post</a> to learn more about different network architectures.</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Neural Network Training </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>train_neural_network</code> function optimizes the neural network.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The <code>print_stats</code> function prints loss and validation accuracy.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>Well done! Many students make a mistake here by computing training accuracy rather than validation accuracy.</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The hyperparameters have been set to reasonable numbers.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>It's
a great set of hyperparameters! I hope that you played with different
hyperparameters in order to see how it affects training.</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white"="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The neural network validation and test accuracy are similar. Their accuracies are greater than 50%.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p>Well done! You managed to train a network, which beats an accuracy threshold of 50% required to pass this assignment.</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --> <div class="row"> <!-- ngIf: !editable && submission.general_comment --> </div> <div class="row"> <!-- ngIf: !(state && state.audit) --><ng-form ng-if="!(state && state.audit)" name="general-comment-form" class="ng-pristine ng-valid ng-scope"> <!-- ngIf: editable --> </ng-form><!-- end ngIf: !(state && state.audit) --> </div> <div class="row row-gap-small"></div> </div> <div class="row row-gap-small"></div> <!-- ngIf: isResubmittable() --> <div class="row row-gap-small"> <div class="col-xs-12 text-center"> <!-- ngIf: submission.archive_url --><a class="wide-and-bold ng-binding ng-scope" ng-if="submission.archive_url" href="https://udacity-reviews-uploads.s3.amazonaws.com/_submissions/zipfile/764904/imageclassification_reviewchanges.zip" download=""> <img src="ObjectClassification_files/download-icon.svg" class="icon-medium"> Download Project </a><!-- end ngIf: submission.archive_url --> </div> </div> <!-- ngIf: commentsCount > 0 --> <div class="row row-gap-medium"></div> </section><!-- end ngIf: critiquesAccessor --> <section ng-show="isCurrentTab('audit')" class="ng-hide"> <div audit-tab="" submission="submission" state="auditTabState" class="ng-isolate-scope"><!-- ngIf: auditCritiquesAccessor --> </div> </section> </div> </div> </div> </div> </div> </div> <div ng-show="isCurrentTab('feedback') || isUngradeable()" class="ng-scope ng-hide" style=""> <!-- ngIf: !hasViewedResubmissionVideo() && isResubmittable() --> </div> <!-- ngIf: hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser() --><div ng-if="hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser()" class="row row-gap-medium ng-scope"> <div class="col-md-10 col-md-offset-1 text-center"> <!-- ngIf: hasViewedResubmissionVideo() && isResubmittable() --> </div> </div><!-- end ngIf: hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser() --> <div class="row row-gap-large ng-scope"></div> <!-- ngIf: isSubmissionByCurrentUser() && currentProject.nanodegree_key --><div ng-if="isSubmissionByCurrentUser() && currentProject.nanodegree_key" class="row row-gap-medium ng-scope"> <div class="col-xs-12 text-center"> <a class="btn btn-secondary ng-binding" ng-click="goToPath()">Return to Path</a> </div> </div><!-- end ngIf: isSubmissionByCurrentUser() && currentProject.nanodegree_key --> <div class="visible-xs row row-gap-medium ng-scope"> <div class="col-xs-12"> <div ng-show="!isUngradeable() && showStudentFeedback" class="locked-feedback-footer ng-hide"> <div ng-switch="hoverValue"> <!-- ngSwitchWhen: 1 --> <!-- ngSwitchWhen: 2 --> <!-- ngSwitchWhen: 3 --> <!-- ngSwitchWhen: 4 --> <!-- ngSwitchWhen: 5 --> <!-- ngSwitchDefault: --><span ng-switch-default="" class="ng-binding ng-scope">Rate this review</span><!-- end ngSwitchWhen: --> </div> <div class="star-rating"> <span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0" aria-valuetext="" uib-rating="" state-on="'feedback-star-on'" state-off="'feedback-star-off'" on-leave="hoverValue = null" on-hover="hoverValue = value" ng-model="studentFeedback.rating" class="ng-isolate-scope ng-not-empty ng-valid">
<!-- ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">( )</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-off" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="one"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">( )</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-off" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="two"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">( )</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-off" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="three"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">( )</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-off" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="four"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">( )</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-off" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="five"></i><!-- end ngRepeat: r in range track by $index -->
</span> </div> </div> </div> </div> <!-- ngIf: shouldShowAssessmentFooter() --> <div class="row row-gap-medium ng-scope"></div> <div id="comment-wrapper" class="ng-scope"></div> </div>
</div> </div> </div>
</div>
<!-- ngInclude: main.pageContext.footerURL --><div ng-include="main.pageContext.footerURL" class="ng-scope"><footer id="footer" ng-controller="FooterCtrl as ctrl" class="ng-scope"> <div class="container"> <ul class="nav nav-pills"> <!-- ngIf: currentUser && currentUser.role !== 'student' --> <!-- ngIf: currentUser && currentUser.role !== 'student' --> <li><a ui-sref="submissions.student-faq" translate="" class="ng-scope" href="#!/submissions/student-faq">Student FAQ</a></li> <!-- ngIf: currentUser && currentUser.role !== 'student' --> </ul> </div> </footer> </div>
<script src="ObjectClassification_files/jquery.js"></script>
<script src="ObjectClassification_files/materialize.js"></script>
<script type="text/javascript" src="ObjectClassification_files/airbrake-shim.js" data-airbrake-project-id="108424" data-airbrake-project-key="585b2c42b7a3ccfb360e6b1461185702" data-airbrake-environment-name="production"></script>
<script data-airbrake-onload="initAirbrake">
function initAirbrake() {
Airbrake.addFilter(function (notice) {
console.log(notice);
return true;
});
}
</script>
<script src="ObjectClassification_files/angular.js"></script>
<!-- inject:js -->
<script src="ObjectClassification_files/_vendor_ae47bb24.js"></script>
<script src="ObjectClassification_files/grading_ae47bb24.js"></script>
<script src="ObjectClassification_files/airbrake-shim.js"></script>
<!-- endinject -->
<div class="hiddendiv common"></div></body></html>