With thousands of Engineering students registered and hundreds of students already completed more than 10 tasks. It's just a matter of time to become Leader in online trainings in entire India.
Because... It is a promising technique and Student is getting attached to the each chapter in a course. It creates entusiasm. The guides with their presense online 24/7 make sure student get most out of it with thier clever tasks and quizzes.
You can become partner by simply writing to us at<EMAIL_ADDRESS>We are looking for the partners who can join the hands with us in this Maha Yagna...
Yes we are here for the same. Get in touch with us. We are more than happy to welcome you on board
Register as a teacher on ASDP Login
With thousands of Engineering students registered and hundreds of students already completed more than 10 tasks. It's just a matter of time to become Leader in online trainings in entire India.
Because... It is a promising technique and Student is getting attached to the each chapter in a course. It creates entusiasm. The guides with their presense online 24/7 make sure student get most out of it with thier clever tasks and quizzes.
You can become partner by simply writing to us at<EMAIL_ADDRESS>We are looking for the partners who can join the hands with us in this Maha Yagna...
Yes we are here for the same. Get in touch with us. We are more than happy to welcome you on board
Register as a teacher on ASDP Login
Programming languages- Java, Advance Java, C, C++, C#, Python, and Matlab. Without a knowledge on IDEs and the Software development concepts there is no training on software development. Finally a fullfledged project.
Masters in webdevelopment teaches on concepts of web development and trains front end back end development through guidance and tasks assignments. HTML5, CSS3, Bootstrap, Javascript, PHP, JQuery etc. are in pipeline
Bigdata, Hadoop, Data analytics and cloud computing are the buzz words of companies and candidates now a days. You will receive world class training at Ameyem on each advanced topic of the day. You will be carried with the latest technologies
There is full-fledged Electronics lab exists with ameyem and candidates who learns online will be asked to experiment on not so expensive components. Hands on on the basic Electronic components and sensors and the latest developments in IoT will be the subjects
Android applications development along with the latest technologies. Apps based on net connectivity, Restfull APIs and Map functions along with app design and marketing aspects.
Do you know Artificial Intelligence taking away most of the jobs? But at the same time it offers infinite chance to play with it. Do you take on AI? More at this website to know about AI.
You might be thinking that, there are several online learning sites and several institues who give teachings present. What's so different about us and why you should turn to us? Here it is...
The needs of each individual understood before making skill learning plan. Skill gaps will be identified and optimistic plan for quick learning will be laid out
You can see unbelievable progress you could ever imagined. The secret lies in the formula itself. It's no class room oriented but effective. To know Why is it so ?. And the Credit score system is only to accelerate your learning
Understanding what you learn and how you deal with a task will help the Guide, who is expert in field to systhesize a specific task for your skill level. S/He decides where to start and where to end. All the resources required such as notes, links and source files will be provided
Not at all. There's a progress bar and the live graph of how your skills are improving day by day... Wonna try? It's free for next 14 days.. Register today itself..


Definition: Outsourcing is the contracting out of a business function - commonly one previously performed in-house - to an external provider.
The decision involves a trade off between cost and efficiency on one hand, and control of quality or intellectual property on the other hand. If a function is considered to be core of the value of the product/service on offer then outsourcing is unlikely.
E.g. Unlikely to outsource Research and Development for silicon chip design. However, if the function is peripheral to the main product/service then outsourcing is more likely e.g. After sales support for Personal Computers.


Analyses method workflows and reports unhandled/undocumented exceptions. (This inspection mimics Java's exception definition analysis.)


teetime.stage.taskfarm.monitoring.extraction
Classes
AbstractGeneralCSVExporter
AbstractMonitoringDataExporter
AbstractStackedCSVExporter
StackedTimePullThroughput2D
StackedTimePushThroughput2D
StackedTimeSizeWithCapacity2D
TimeBoundary2D
TimeBoundaryMSPullThroughput3D
TimeBoundaryMSPushThroughput3D
TimeBoundaryStages3D


Analysis of means (ANOM) as used in technometrical computing. The package takes results from multiple comparisons with the grand mean (obtained with 'multcomp', 'SimComp', 'nparcomp', or 'MCPAN') or corresponding simultaneous confidence intervals as input and produces ANOM decision charts that illustrate which group means deviate significantly from the grand mean.
| Version: | 0.5 |
| Depends: | R (≥ 3.0.0) |
| Imports: | ggplot2, MCPAN, multcomp, nparcomp, SimComp |
| Suggests: | knitr, lme4, nlme, sandwich |
| Published: | 2017-04-12 |
| Author: | Philip Pallmann |
| Maintainer: | Philip Pallmann <p.pallmann at lancaster.ac.uk> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://github.com/PhilipPallmann/ANOM |
| NeedsCompilation: | no |
| Citation: | ANOM citation info |
| Materials: | README NEWS |
| CRAN checks: | ANOM results |
| Reference manual: | ANOM.pdf |
| Vignettes: |
ANOM |
| Package source: | ANOM_0.5.tar.gz |
| Windows binaries: | r-devel: ANOM_0.5.zip, r-release: ANOM_0.5.zip, r-oldrel: ANOM_0.5.zip |
| OS X binaries: | r-release: ANOM_0.5.tgz, r-oldrel: ANOM_0.5.tgz |
| Old sources: | ANOM archive |
Please use the canonical form https://CRAN.R-project.org/package=ANOM to link to this page.


{% extends "base.html" %} {% load staticfiles %} {% block content %}
Remind yourself of things you don't want to forget.
What's a morsel?  Your morsels can be pieces of text, images, and links.
I'll email your morsels to you next week, next month, and every six months after that. Refresh your memory and revisit why that morsel was so delicious.


Seafood is really a "Fast Food" in that it takes a very short time to cook. The biggest crime that restaurants perpetrate is overcooking fish. Many of the following recipes can be prepared in minutes and even those that require some advance preparations, can be finished in less than 15 minutes.
Heat oil in deep fryer to 325°. Check fillets for bones and wipe with damp towel. Make batter of: 4 or 5 heaping Tbsp. flour 1/2 tsp. baking soda Salt and pepper Dash of Seafood seasoning (Optional) Add water and stir until the consistency of heavy cream. Dip fillets in batter and fry until golden brown. Drain on paper towels and serve hot.
Ingredients: 1 lb. ( 4 - 4oz. fillets) trout, or sole or any mild flavored fish
1/2 tsp. salt
2 Tbsp. flour
6 Tbsp. butter
2 Tbsp. fresh lemon juice
1 Tbsp. Worcestershire Sauce Pepper
Mix flour, salt and dash pepper in small, shallow bowl. Dredge fillets in flour. In a large skillet, melt 2 Tbsp. butter. Sauté fish over moderate heat until golden brown, turning once. Remove fried fish to platter and keep warm. Add remaining butter to skillet. When melted add lemon juice and Worcestershire sauce. Heat thoroughly, scraping up bits of fish, etc from the bottom of pan. Pour over fish and serve with wedges of lemon and minced parsley.
Wasn’t that easy?
Ingredients: 1 lb. sole (4 4oz. fillets)
1/2 - 3/4 cup sliced or slivered almonds
4 Tbsp. butter
2 Tbsp. flour Salt and Pepper to taste
In large skillet melt butter. Sauté almonds until golden brown. Remove to platter and keep warm. In same skillet, sauté fillets which have been dredged in seasoned flour. Remember not to overcook, -1/2 to 2 min. per side is plenty. Remove sautéed fillets and serve sprinkled with the almonds and garnished with lemon wedges.
 Sauté onion in butter. Blend in flour, milk, and wine. Cook, stirring until sauce thickens. Blend in cream and cheese. Add salt and pepper to taste and stir in the lemon juice. Pour this sauce over the fish. Sprinkle with more Parmesan. Bake in a hot oven 425° about 15 min. or until fish flakes easily. Run under the broiler just enough to add a brown glaze to the sauce.
Do you notice that I do not say how many these recipes serve? I buy 2/3 to 3/4 lb. of boneless fish for just the two of us. Our family has notorious appetites so I don’t really know what is average. Besides, with today’s microwaves it is so easy to warm up leftovers that I always cook plenty.
Ingredients: 8 - 10 oz. redfish or red snapper fillets
2 cups butter, melted
1/4 cup fresh lemon juice
1 Tbsp. dried thyme, crumbled
2 tsp. freshly ground pepper
1 1/2 tsp. ground red pepper
1 tsp. salt.
Fillets should be skinned. Check over for bones. (This is a given for all fish fillets) Return fillets to refrigerator until ready to fry. Melt butter in a heavy skillet over low heat. Stir in seasonings and lemon juice. Cook 10 min. Pour into shallow dish. Over high heat, heat a large cast iron skillet until bottom begins to form white haze. Pat fish dry. Dip each fillet into butter mixture. Place in dry skillet. Turn and cook other side. We’re talking immediately here. I would say 15 seconds per side. The fish will turn black and the smoke will be rolling. Remove from skillet. Repeat with remaining fish. Cover loosely and keep warm. Add the remaining butter mixture to skillet over high heat and stir with spoon or spatula, scraping up the browned bits. When butter has turned dark brown, spoon over fish and serve immediately. Now, because of the size of the fillets and all that butter, I would guess that this should serve 8 deliciously with a green salad and crusty bread.
Ingredients: 1 lb. Pompano
1/4 lb. shrimp
2 onions
2 egg yolks
1/4 lb. crawfish (I could never get these so doubled the shrimp) 1/2 pt. boiled milk
1/4 lb. butter
2 Tbsp. flour Nutmeg
salt to taste
Boil shrimp and crawfish in shells until done. (Med. shrimp take 5 min. at most) Cool and shell. Chop very fine. Chop onions very fine. Sauté onions in butter until limp and yellow. Add shrimp and crawfish, Add flour. Stir until smooth. Then add milk, and egg yolks, stirring constantly with wooden spoon to make a very heavy white sauce. Season with salt and nutmeg. Cool. Now cut Pompano in half, skin and fillet. (You know me - I’d buy four nice fillets of 4 oz. each) Now, you need four sheets of vegetable parchment paper, but you can use brown grocery bags. On each piece of paper, place 3 Tbsp. of the heavy sauce and top with a fillet. Pour over a little melted butter and fold, sealing as you would for the freezer by folding over at the top. Place the 4 pkg. in a well-buttered baking pan and bake in a hot oven for 15 min. Serve hot in paper packages. As you can see, this takes a bit of time, but can be prepared ahead up until the time of baking.
Ingredients: 1 lb. large shrimp, raw
1/2 lb. fresh mushrooms, sliced
1 cup wild rice, cooked according to directions (You can use the Uncle Ben’s Long
Grain and Wild Rice pkg, but leave out the seasoning packet)
1/2 lb. (or more) butter 1 large clove garlic, peeled
Salt and Pepper to taste
Peel shrimp. Wipe mushrooms with a damp paper towel and slice. Halve garlic clove. Melt butter in a large skillet. Add garlic and allow to set so that butter absorbs garlic flavor. (If you don’t have time for this, stick a toothpick in each garlic half for easy retrieval later). When all your guests are present and the salad, etc. are ready, reheat the butter. Sauté the shrimp about 7 min, turning and stirring so that they cook evenly. Add mushrooms and sauté with shrimp until mushrooms are cooked. Add rice to skillet. At this time you may want to add more butter. When rice is heated through, serve to 4 garnished with a sprig of parsley. A green salad, crisp bread, a good white wine and your reputation is made.
Ingredients: 1 1/2 lb raw shrimp
2 cups sour cream
1/4 cup sherry
1/2 cup butter, melted
2 scallions, minced
1/2 lb. mushrooms, sliced
2 Tbsp. flour
Salt and Pepper to taste
Sauté shrimp and scallions in butter about 5 min. or until shrimp are pink. Add mushrooms and cook 5 min. longer. Blend in flour, salt and pepper. Add sour cream gradually; cook over low heat, stirring constantly until thick. Remove from heat. Stir in sherry and serve to 4 over rice.
Ingredients: 3 lb. cooked shrimp
1/4 lb. melted butter
2 large cans Fruit Cocktail, Peaches, Pineapple or whatever
Marinade:
Ingredients: 1 cup salad oil
2 tsp paprika
4 tbsp. chopped parsley
1 tbsp. grated onion
2 tsp. salt
2 tsp. garlic salt
1 tsp. pepper
Combine marinade ingredients. Marinate shrimp in refrigerator 2 hrs. or more. Turn broiler on high and preheat. Line bottom of broiler pan with foil and arrange shrimp on half of pan with fruit on other half. Brush both with melted butter. Broil 5 min. without turning.. Should be enough for 6.
It took me years to track down this recipe. I first tasted it at a Parish supper in San Diego. I’ll probably get in trouble with my Baptist friends but Episcopalian Women are fabulous cooks.
Ingredients: 8 slices Farm Style Bread (Pepperidge Farms used to make this. It is a
thinly sliced, dense bread. You can use either the white or wheat)
1 lb. medium sharp cheddar cheese
6 eggs
2 1/2 cups half and half
1 can cream of shrimp soup
1 tsp. brown sugar
1/2 tsp. paprika
1/2 tsp. dry mustard
Dash cayenne
1 small onion, grated
1/2 tsp. Beau Monde Seasoning
1/2 tsp. salt
1/2 tsp. pepper
1/2 tsp. Worcestershire Sauce
Cut crusts from bread; butter and cut in cubes. Grate cheese. Layer bread and cheese in buttered 9x13 casserole. (2 layers each) Beat eggs and add remaining ingredients, beat until well blended.Pour over bread and cheese mixture. Let stand in refrigerator 24 hrs. Bake 1 hr. at 300° or until knife inserted in center comes out clean. Serves 8 nicely for Brunch. If you want to add a little more substance, throw in a can or two of small, cooked shrimp, drained.
I think Von Gamble Brooks gets credit for this one too. We used to have luncheons to celebrate one of the housewife’s birthdays when we lived on Elmwood. I know I first ate this at Von’s house but since the luncheon’s were cooperative affairs, the recipe may have come from another neighbor.
Ingredients: 3/4 cup chopped green pepper
3/4 cup minced onion
1 cup canned crab meat
1 cup small cooked shrimp
1/2 tsp. salt
Dash pepper
1 tsp. Worcestershire Sauce
1 cup mayonnaise
1 Cup soft breadcrumbs
2 Tbsp. melted butter
Combine vegetables, crab meat, shrimp, seasonings and mayonnaise. Put in a greased 1 qt. casserole or in 8 individual shells or dishes. Toss bread crumbs with butter and sprinkle over top. Bake large dish in moderate 350° oven for 30 min. or until heated through and crumbs are golden brown. Shells take 15 - 20 min.
Alma Persun, who was born and raised in Cogan House, invited us to her lovely home in Preston Hollow when we first came to Texas. She served this as a dip with Fritos but it also makes a nice luncheon dish.
Ingredients: 1 can cream of mushroom soup
6 oz. sharp process cheddar cheese, cubed
1 - 6 oz. can crab meat, drained OR 1 - 6 or 8 oz. pkg. frozen King Crab, drained
1 small can sliced mushrooms, drained
2 Tbsp. chopped pimentos
Combine all ingredients in saucepan. Heat over low heat, stirring constantly until cheese is melted. Use as a dip with corn chips or serve as entrée over toast points. A garnish of hard boiled egg is nice.
Ingredients: 2 Tbsp. butter 1 cup fresh bread crumbs (Sour Dough Fr.)
1 tsp. finely chopped garlic
2 Tbsp. finely chopped fresh parsley
2 doz. fresh oysters, drained
3 Tbsp. Parmesan
2 Tbsp. butter, cut in tiny pieces
Preheat oven to 450°. Butter an oven proof dish (8x10 or 12) generously. In heavy skillet, melt 2 Tbsp. butter over moderate heat. When foam subsides, add crumbs and garlic. Toss 2 or 3 min. until crisp and golden. Stir in parsley. Spread about 2/3 cup of crumb mixture in bottom of baking dish. Arrange oysters over it in single layer. Mix remaining crumbs with cheese and sprinkle on top. Dot with 2 Tbsp. butter. Bake in top third of oven 12 - 15 min. until crumbs are golden and juices in pan are bubbling. Serve at once.
Ingredients: 1 tin smoked Oysters, drained
1 #2 can cream-style corn
1 egg 1/2 cup undiluted evaporated milk
1/8 tsp. salt
2 1/2 tsp. soy sauce
1 Tbsp. minced onion
In casserole to be used, beat egg lightly with a fork. Add milk, corn, seasonings and mix. Scatter drained oysters over top. Sprinkle with cracker crumbs. Bake in a moderate oven for about 30 min. Test with knife to see if mixture is set.
I’m probably prejudiced, but I think a few cans of tuna are indispensable to a well-stocked pantry. In fact, I get a little paranoid if there’s no tuna in the house. I thinks it dates back to the days when I was in the hospital with polio being fed through various tubes. My only entertainment was Arthur Godfrey’s Radio Show. Two of his sponsors were Star Kist Tuna and Peter Pan Peanut Butter. I lay there listening to those highly descriptive commercials and then at the end of the show, they passed out sandwiches to the radio audience. I vowed that if and when I could eat again, I would never be without tuna fish and peanut butter. So here are a few of my favorite tuna recipes.
Ingredients: 1 can (7 oz.) tuna, drained and flaked
1 Tbsp. Worcestershire sauce
1/8 tsp. Tabasco
3 Tbsp. chopped green onions
1/4 cup mayonnaise
1 cup soft bread crumbs mixed with 2 Tbsp. mayonnaise
Combine first 5 ingredients. Spoon into individual shells (or a 8" pie plate). Toss crumbs with 2 Tbsp. mayo. Sprinkle crumbs over tuna and bake in 350° oven 20 min. If you add a green salad, French Bread and a good white wine, it will serve 4.
Ingredients: 3 green onions, chopped fine
4 Tbsp. butter
4 oz. fresh mushrooms, chopped
1 - 10 1/2 oz. can cream of chicken or cream of mushroom soup 1/2 cup dry vermouth
2 - 7 oz. cans tuna, (Preferably white) drained and broken up
2 Tbsp. Parmesan Cheese
1/3 cup fresh bread crumbs (I like French)
Chopped parsley and white pepper to taste
Preheat oven to 450°. In 3 Tbsp. butter, sauté onions and mushrooms until tender and liquid is absorbed. Remove from heat and set aside. In a saucepan, combine soup and vermouth. Bring to a boil. Add half of the sauce to the onion-mushroom mixture. Divide this sauce between 6 buttered shells or small baking dishes. Divide tuna and parsley between shells. Then spoon on the rest of the sauce. Toss bread crumbs with the cheese and sprinkle over each dish. You might also add a little melted butter to each dish. Heat about 10 min. or until browned.
As you may have noticed by now, you can’t cook my recipes without vermouth, burgundy and sherry in the house. I don’t recommend the cooking wines sold in the supermarket. You might as well enjoy a little wine while you’re cooking, so invest in a good dry vermouth, a good dry sherry and a big jug of Gallo Hearty Burgundy. You’ll be prepared for any occasion.
This is one of John’s favorites.
Ingredients: 3 or 4 thin slices of lemon
2 cans (7 oz.) tuna
1 can cream of mushroom soup
3 slightly beaten egg yolks
1 cup fine cracker crumbs
1/4 cup finely chopped onions
2 Tbsp. finely chopped parsley
1 Tbsp. lemon Juice
Dash pepper
3 egg whites, beaten until stiff
Place lemons in a row in the bottom of a very well greased 8.5x4.5x2.5 loaf pan. thoroughly combine the remaining ingredients, except the egg whites. Fold in egg whites. Pour the mixture carefully over the lemon slices in the loaf pan. Bale om a 350° ven for 45 min. or until the center of the loaf is firm. Invert on a warm serving platter and garnish with lemons and parsley.


{#include base.html} {#contents} Operators {#include operator-cluster.html /} {#include operator-entity.html /} {/contents} {/include}


Snookes1516.github.io
Gardens Landscapes · George Washington's Mount Vernon. Homework Help Helen Plum Library. Welcome to the website of Plumstead Manor School. Plumstead Manor School - INSIGHT.
Ben's Guide to U.S. Government for Kids - State and U.S. government information and resource links. U.S.Flag.org - Find answers to common and uncommon questions about. Essay Writing Service From Vetted Writers - GradeMiners. Mobirise - Free Website Builder Software. Carol Plum Ucci – Author, teacher, mentor.
Dreamfall by Amy Plum Book Reviews - Featured Books. Get the latest wine news and best deals, with expert advice and recommendations on Telegraph food drink. Cold War Questions and Answers - Discover the eNotes.com community of teachers, mentors and students just like you that can answer any question you might. Welcome to the Open Homework Help website. Here you will find various resources to assist you with your homework. Please check back often as our website is being. Wine: News, reviews advice - The Telegraph.
Amazon.com: Sugar Plum Ballerinas #1: Plum Fantastic. The most widely distributed of the stone fruits, plums exist in great variety throughout much of Europe, Asia, and North America. They range in size from as small. 100 idioms and their meanings and examples Helen Plum Library provides free programs, resources and a wide range of materials to the Lombard community. Visitors to the website can search the catalog, place.
Qualified Homework Help from PhD Writers - GradeMiners. Famous Psychologists - B.F. Skinner. Get an answer for Why does Eva set Plum on fire? and find homework help for other Sula questions at eNotes. La Pluma Elementary School is part of the Norwalk-la Mirada Unified School District in Norwalk How did scientists figure out the structure of atoms without looking at them? Try out different models by shooting light at the atom. Check Essay help at the click of a button. You have an essay due soon. We have a team of screened experts who are ready to get it done. We’ll match you with an expert.
Video: American Intelligence Media, Americans for Innovation, Leader Technologies Wrightslaw Illinois Yellow Pages for Kids with Disabilities. A Nightmare on Elm Street meets Inception in this gripping psychological thriller from international bestselling author Amy Plum. Seven teenagers who suffer. George Washington's mind was rarely far from the lush gardens and majestic views at Mount Vernon. George Washington oversaw all aspects of the landscape. Hello! We finally have the study guides online for my books. They are in PDF format so – if you want to save a tree -just view them in your eReader or your web browser.
ENotes Homework Help is where your questions are answered by real teachers. Having trouble understanding a book or struggling to start your English essay. Models of the Hydrogen Atom - Quantum Mechanics Hydrogen.
The Sims 4: New Game Patch (November 7th, 2017) SimsVIP. Welcome to HomeworkForSchool.com: CPM homework service. We are provides CPM homework help of any complexity: Have you ever searched for online homework help? We offer professional assistance with all kinds of academic assignments. Originality is a guarantee. Cold War Questions and Answers - eNotes.com. CPM Homework Help for You! Online 24/7 Service. Plum - Students Britannica Kids Homework. Homework Help . Need homework help with a book by Carol Plum Ucci? . Carol Plum-Ucci would like to help you out, young writers. Free Website Maker. Create awesome responsive websites. Easy and fast - No coding! Free for commercial. Here is the list of most commonly used English Idioms with meanings and examples - video for idioms and their meanings.
Homework Help Questions Answers: Math - eNotes.com. Help in finding attorneys, therapists, educational consultants, psychologists, diagnosticians, health care providers, tutors, coaches, and advocates for children. Obama hired them. Trump cannot fire them. There’s a new Sims 4 update available in Origin. If you have automatic updates enabled in the “Application Settings”, the game will auto-update Famous Psychologists - B.F. Skinner. Psychologist - Anywhere you need help. Anytime you need it. This one of a kind personal service by Dr Vincent Berger Why does Eva set Plum on fire? eNotes. Fast Growing Trees Limited Guarantee. We guarantee our plants to be true to type and in healthy condition. Due to the nature of buying trees and shrubs
Amazon.com: Sugar Plum Ballerinas #1: Plum Fantastic<PHONE_NUMBER>604): Whoopi Goldberg, Deborah Underwood, Maryn Roos: Books. Terms of Service Fast-Growing-Trees.com.


You aren't connected to Instagram yet. Click the button to connect this application with your Instagram account.


If you have multiple email clients on your computer, you need to make sure that the email client that you want to use with Code Co-op is set as the default. There are a few ways how this may be done.
First try the easiest way: launch your email client. Most of them (e.g. Outlook, Outlook Express, Eudora, Netscape) perform a check at startup to see whether they are set as default. If not, they propose to make them default.
If nothing like this happens you need to find an option in your email program that makes it the default. For instance, in Outlook Express, go to Tools.Options dialog and select Make Default at the bottom of the General page.
Alternatively, Internet Explorer users can launch IE and select Tools > Internet Options. Select the Programs Tab and verify that the correct email client is selected.
Regardless of the email program there is always an option to change the default email client through Control Panel. Select Internet Options > Programs tab and select your favourite email client from the list.


Throughout this course we've taken a look at how we can make the computer give us information. We do this by using print statements. Print statements give us an idea of whats going on in the program at a given time, and are vital to writing good software.
But what about the flip side, what happens when we want to give the computer some information? Almost all applications that you interact with on a daily basis will provide ways for you to give them information. Just look up at the browser search bar above this website.
In this lesson we'll take a look at how to write programs in {{.Get "lang"}} which accept user input.
Programs which get input from the user need to be written in a specific way. The program will essentially prompt the user for information, and then when the user hits enter, will take whatever they entered and be able to use it going forward in it's execution.
The code for accepting user input is actually not that much more complex than the code for printing. In {{.Get "lang"}}, we can get user input like this:
{{ partial "shortcodes/code" (dict "lang" (.Get "code-lang") "file" "" "Content" $.Page.Params.code.a ) }}
The code above simply prompts the user for information, and the prints out what they entered in.
One of the most important things to note here is that we're storing whatever the user entered into a variable. It's vital that we do this, after all, what's the point of asking the user for something if we're not gonna keep track of it.
As you play around with this program you'll notice that it actually stops it's flow of execution when awaiting input from the user. In pervious programs we're written they seem to execute and be done in a matter of milliseconds. But in this case if you wait 10 minutes before you decide to input something, the computer will wait along with you.
This is because when the computer see's that it's supposed to accept input it stops everything it's doing and waits. In a lot of cases, the input that the computer receives from the user is vital to it being able to perform it's task, whatever that may be.
Many programs you'll encounter (and eventually write) will rely on the user to tell them what to do and when it's okay for them to stop. Once we discover more advanced topics we'll eventually be able to write programs that have menus and give the user an option of what they want to do! But this is where it all starts.
Now that you have the basics down, play around for a bit and try to change the prompt, or maybe try asking the user for multiple pieces of information and use some of the string functions we talked about in the previous lessons to modify it.
There's still a lot to learn about getting user input. As of right now we're only receiving input in the form of strings. As we move forward in the course we'll take a look at how to allow the user to enter numbers, and other types of data.


{% include head.html %}
{{ content }}
{% include footer.html %} {% include loading.html %} {% include js.html %}


Store
Login
Register
Army Registration
Army Type:
Army Points:
Detachments
+
Units:
+
Cancel
Next
Army Registration
Would you like to register your army now?
No
Yes


Only one integer 0-255 can be returned. Use stdout for other data.
myfunc() {
return foo bar
}
myfunc() {
echo foo
echo bar
return 0
}
In bash, return
can only be used to signal success or failure (0 = success, 1-255 = failure).
To return textual or multiple values from a function, write them to stdout and capture them with command substitution instead.
See [[SC2152]] for more information.
None


This page hosts a Twitter Sentiment analyzer. It was generated using the nltk python library and exported via pickle, then restored on demand here. The training dataset can be found here. 100,000 random records were selected for training. A random selection of 100 tweets are then pulled from the Twitter API and run through the model.
In a future iteration of this page, I will post the selected tweets and their sentiment.
Search term:
Analyzing...
Overall Sentiment: {{twitter_sentiment.overall_sentiment}}
Sentiment Percentage: {{twitter_sentiment.sentiment_percentage}}


{% extends "layout.html" %} {% block title %}
Update Kits
Last update on {{ reorder.last_update }} PST
Are you sure you want to save the kit bills of materials and overwrite the current mappings?
Are you sure you want to delete this row?


Gallery
Organic Manure
Ulta Chhata
Smallest 3-D printed sattelite
©All Rights Reserved to Centre for Social Innovation


cook smarter
live smarter
smARTfood
Multimedia
Billy Law is a Food and Travel Photographer. He will join us in our food photography workshop.
How to create food photography stories with Billy Law?
cook smarter
live smarter
Billy Law is a Food and Travel Photographer. He will join us in our food photography workshop.
How to create food photography stories with Billy Law?


The following people are involved in the creation of MultiBit
Sometimes a transaction seems to get "stuck" leading to concern that it hasn't been sent or received. This is almost always fixed by using the "Reset Blockchain and Transactions" option from the Tools menu.
There are various support resources online if you need help using MultiBit:
Read through the MultiBit help if you have not done so already. In MultiBit choose the menu option "Help | Help Contents" or read the release documentation for your version.
Check the following support notes:
A quick search on Bitcoin StackExchange can often be fruitful.
If you discover a new bug in MultiBit please report it - it makes MultiBit better for everyone. To report a bug please do the following
Bug report Operating System: MultiBit Version: Steps to replicate the problem:
Due to the number of downloads of MultiBit now gets we cannot answer every support query personally. We do see these issues and make acknowledging them a priority.


Before Change
Mean Squared Discriminator Loss
// pylint: disable=no-self-use
def forward(self, score_fake, score_real):
loss_real = torch.mean(torch.sum(torch.pow(score_real - 1.0, 2), dim=[1, 2]))
loss_fake = torch.mean(torch.sum(torch.pow(score_fake, 2), dim=[1, 2]))
loss_d = loss_real + loss_fake
return loss_d, loss_real, loss_fake
After Change
// pylint: disable=no-self-use
def forward(self, score_fake, score_real):
loss_real = self.loss_func(score_real, score_real.new_ones(score_real.shape))
loss_fake = self.loss_func(score_fake, score_fake.new_zeros(score_fake.shape))
loss_d = loss_real + loss_fake
return loss_d, loss_real, loss_fake


This all started as a small project of mine where I found that one of the basketball leagues I participated in was tracking scores using paper and pencil. While observing several other tournaments and leagues, paper and pencil seemed quite consistent, the scorekeeper would track the basics like points, but not much more. The process was very cumbersome and this data was difficult to share, so it was then that I decided to create an iPhone app that could easily track statistics and provide this information and analysis in real-time for others to see.
As I started observing more and more leagues, I also found that the scoreboards used were fairly primitive and outdated, basically it was either a paper flip chart of digits or one of those monochrome scoreboards with static text like "Home" and "Visitor". At this point it dawned on me that there are many places where technology could dramatically improve how sports are experienced at every level. Of course professional leagues like the NBA and collegiate level have embraced and used quite a bit of sophisticated technology, but we're still only on the brink of these changes. As traditional industries such as taxis, groceries, banking, etc get disrupted, the sports industry is ripe for disruption.
madsportslab's mission is to bring about the best possible experiences for sports enthusiasts through technology, whether it be smart apps, devices, or services. Join us as we embark on a new era of sports!


public static interface IWorkspaceConnection.ICurrentPatchOperationFactory
IWorkspaceConnection.applyCurrentPatchOperations(IComponentHandle, List, IProgressMonitor)
method.| Modifier and Type | Method and Description |
|---|---|
IWorkspaceConnection.ICurrentPatchOperation |
createAttemptAutoResolveOp(IVersionableHandle versionable,
boolean bestEffort)
Create an operation that will perform an auto-resolve of the change for the given versionable or all the change
details, if applicable.
|
IWorkspaceConnection.ICurrentPatchOperation |
createAttemptAutoResolveOp(IVersionableHandle versionable,
UUID changeDetailId,
boolean bestEffort)
Create an operation that will perform an auto-resolve of the change detail for the given versionable.
|
com.ibm.team.scm.common.ICurrentPatchInput |
createCurrentPatchInput()
Return an object that can be used as an input when creating a current
patch for a component in a workspace.
|
IWorkspaceConnection.ICurrentPatchOperation |
createMarkAsResolvedOp(IVersionableHandle versionable,
boolean force)
Create an operation that will mark the given versionable as resolved.
|
IWorkspaceConnection.ICurrentPatchOperation |
createMarkAsResolvedOp(IVersionableHandle versionable,
UUID changeDetailId,
boolean force)
Create an operation that will mark the given change detail as resolved.
|
IWorkspaceConnection.ICurrentPatchOperation |
createMarkAsUnresolvedOp(IVersionableHandle versionable)
Create an operation that will mark the change for the given versionable as unresolved.
|
IWorkspaceConnection.ICurrentPatchOperation |
createMarkAsUnresolvedOp(IVersionableHandle versionable,
UUID changeDetailId)
Create an operation that will mark the change detail for the given versionable as unresolved.
|
IWorkspaceConnection.ICurrentPatchOperation |
createReparentVersionableOp(IVersionableHandle versionable,
IFolderHandle newParent)
Create an operation to reparent the given versionable.
|
IWorkspaceConnection.ICurrentPatchOperation |
createResolveWithProposedOp(IVersionableHandle versionable,
boolean force)
Create an operation that will resolve the change for the given versionable by taking
the incoming state of that versionable.
|
IWorkspaceConnection.ICurrentPatchOperation |
createResolveWithProposedOp(IVersionableHandle versionable,
UUID changeDetailId,
boolean force)
Create an operation that will resolve the change detail for the given versionable by taking the
incoming value of the change detail.
|
IWorkspaceConnection.ICurrentPatchOperation |
createUndoChangeOp(IVersionableHandle versionable,
boolean force)
Create an operation that will undo any changes to the given versionable.
|
IWorkspaceConnection.ICurrentPatchOperation |
createUndoChangeOp(IVersionableHandle versionable,
UUID changeDetailId,
boolean force)
Create an operation that will undo the change detail of the given versionable.
|
IWorkspaceConnection.ICurrentPatchOperation createMarkAsResolvedOp(IVersionableHandle versionable, boolean force)
versionable
- the versionableforce
- whether to force the operation if the target change set doesn't contain a change for the versionableIWorkspaceConnection.ICurrentPatchOperation createMarkAsResolvedOp(IVersionableHandle versionable, UUID changeDetailId, boolean force)
versionable
- the versionablechangeDetailId
- the change detailforce
- whether to force the operation if the target change set doesn't contain a change for the change detailIWorkspaceConnection.ICurrentPatchOperation createResolveWithProposedOp(IVersionableHandle versionable, boolean force)
versionable
- the versionableforce
- if the operation is to be forcedIWorkspaceConnection.ICurrentPatchOperation createResolveWithProposedOp(IVersionableHandle versionable, UUID changeDetailId, boolean force)
versionable
- the versionablechangeDetailId
- the change detailforce
- if the operation is to be forcedIWorkspaceConnection.ICurrentPatchOperation createAttemptAutoResolveOp(IVersionableHandle versionable, boolean bestEffort)
versionable
- the versionablebestEffort
- whether a best effort auto-resolve is desiredIWorkspaceConnection.ICurrentPatchOperation createAttemptAutoResolveOp(IVersionableHandle versionable, UUID changeDetailId, boolean bestEffort)
versionable
- the versionablechangeDetailId
- the change detailbestEffort
- whether a best effort auto-resolve is desiredIWorkspaceConnection.ICurrentPatchOperation createUndoChangeOp(IVersionableHandle versionable, boolean force)
versionable
- the versionableforce
- whether the operation is to be forcedIWorkspaceConnection.ICurrentPatchOperation createUndoChangeOp(IVersionableHandle versionable, UUID changeDetailId, boolean force)
versionable
- the versionablechangeDetailId
- the change detailforce
- whether the operation is to be forcedIWorkspaceConnection.ICurrentPatchOperation createMarkAsUnresolvedOp(IVersionableHandle versionable)
versionable
- the versionableIWorkspaceConnection.ICurrentPatchOperation createMarkAsUnresolvedOp(IVersionableHandle versionable, UUID changeDetailId)
versionable
- the versionablechangeDetailId
- the change detailIWorkspaceConnection.ICurrentPatchOperation createReparentVersionableOp(IVersionableHandle versionable, IFolderHandle newParent)
versionable
- the versionablenewParent
- the new parent of the versionablecom.ibm.team.scm.common.ICurrentPatchInput createCurrentPatchInput()
IWorkspaceConnection.createCurrentPatch(IComponentHandle, ICurrentPatchInput, IProgressMonitor)


A grid system is a structure that allows for content to be stacked both vertically and horizontally in a consistent and manageable fashion.


Name: Tonnicca Marie L. Gelacio
Age: 21 years old
Nationality: Filipino
Zodiac Sign: Gemini
MBTI Personality: INFP
I am currently a Computer Programmer/Analyst student. I hope to be a professional software developer in the future.
During my free time, I read books and/or articles, I browse the Internet, or I play video games. I am also interested in photography.
“Do not go where the path may lead, go instead where there is no path and leave a trail.”
– Ralph Waldo Emerson
Graduating from a science high school has given me a strong background in STEM fields. It surely helped me develop my problem-solving skills. I work hard to look for creative and efficient ways to solve a given problem.
I am also confident in my writing skills and I use it as an outlet of my creativity.
I am currently taking up courses on the following programming languages: C#, HTML5, CSS3, Javascipt, and PHP. I am also taking courses on data modelling, networking, and user experience.
With the lesson I learned from these courses, I am able to design an application’s user interface, to create a responsive website, to do basic troubleshooting on network issues, and to design a database.
I am able to work well alone or with a group. I find brainstorming with others fun since I discover different ways to approach a problem. When necessary, I am willing to step up and lead a group to complete a given project.


Cost name is required.
Business unit is required.
Opportunity amount is required.
Cost start date is required.
Repeat option is required.
Probability is required.
Term is required.


To Do List
Lists
Create a List
List Name:
Add List
Task
Add Task
Tasks To Be Done:
Click A Task When Its Done
Tasks Done:


Fidiana
Memories
Friends
Instagram
Hugs!
When I am not ready for camera yet
Our first picture together
After our first X-country
Quick pic when we were back in school
Our first polaroid
First concert together
Neoprints
Neoprints again
After school selfie
With Mr Badrul
Us in band uniform
Jurong Point with Nina~
Teacher's day celebration
After some band performance
Photo session at Jem's rooftop
After Sport's day with photobomb
Behind the field is our modelling wall
Favourite rooftop pictures
Let's be friends forever


module Str:sig
..end
Regular expressions and high-level string processing
type
regexp
The type of compiled regular expressions.
val regexp : string -> regexp
Compile a regular expression. The following constructs are recognized:
.
Matches any character except newline.*
(postfix) Matches the preceding expression zero, one or
several times+
(postfix) Matches the preceding expression one or
several times?
(postfix) Matches the preceding expression once or
not at all[..]
Character set. Ranges are denoted with -
, as in [a-z]
.
An initial ^
, as in [^0-9]
, complements the set.
To include a ]
character in a set, make it the first
character of the set. To include a -
character in a set,
make it the first or the last character of the set.^
Matches at beginning of line: either at the beginning of
the matched string, or just after a '\n' character.$
Matches at end of line: either at the end of the matched
string, or just before a '\n' character.\|
(infix) Alternative between two expressions.\(..\)
Grouping and naming of the enclosed expression.\1
The text matched by the first \(...\)
expression
(\2
for the second expression, and so on up to \9
).\b
Matches word boundaries.\
Quotes special characters. The special characters
are $^\.*+?[]
.In regular expressions you will often use backslash characters; it's
easier to use a quoted string literal {|...|}
to avoid having to
escape backslashes.
For example, the following expression:
let r = Str.regexp {|hello \([A-Za-z]+\)|} in
Str.replace_first r {|\1|} "hello world"
returns the string "world"
.
If you want a regular expression that matches a literal backslash
character, you need to double it: Str.regexp {|\\|}
.
You can use regular string literals "..."
too, however you will
have to escape backslashes. The example above can be rewritten with a
regular string literal as:
let r = Str.regexp "hello \\([A-Za-z]+\\)" in
Str.replace_first r "\\1" "hello world"
And the regular expression for matching a backslash becomes a
quadruple backslash: Str.regexp "\\\\"
.
val regexp_case_fold : string -> regexp
Same as regexp
, but the compiled expression will match text
in a case-insensitive way: uppercase and lowercase letters will
be considered equivalent.
val quote : string -> string
Str.quote s
returns a regexp string that matches exactly
s
and nothing else.
val regexp_string : string -> regexp
Str.regexp_string s
returns a regular expression
that matches exactly s
and nothing else.
val regexp_string_case_fold : string -> regexp
Str.regexp_string_case_fold
is similar to Str.regexp_string
,
but the regexp matches in a case-insensitive way.
val string_match : regexp -> string -> int -> bool
string_match r s start
tests whether a substring of s
that
starts at position start
matches the regular expression r
.
The first character of a string has position 0
, as usual.
val search_forward : regexp -> string -> int -> int
search_forward r s start
searches the string s
for a substring
matching the regular expression r
. The search starts at position
start
and proceeds towards the end of the string.
Return the position of the first character of the matched
substring.
Not_found
if no substring matches.val search_backward : regexp -> string -> int -> int
search_backward r s last
searches the string s
for a
substring matching the regular expression r
. The search first
considers substrings that start at position last
and proceeds
towards the beginning of string. Return the position of the first
character of the matched substring.
Not_found
if no substring matches.val string_partial_match : regexp -> string -> int -> bool
Similar to Str.string_match
, but also returns true if
the argument string is a prefix of a string that matches.
This includes the case of a true complete match.
val matched_string : string -> string
matched_string s
returns the substring of s
that was matched
by the last call to one of the following matching or searching
functions:
Str.string_match
Str.search_forward
Str.search_backward
Str.string_partial_match
Str.global_substitute
Str.substitute_first
provided that none of the following functions was called in between:
Str.global_replace
Str.replace_first
Str.split
Str.bounded_split
Str.split_delim
Str.bounded_split_delim
Str.full_split
Str.bounded_full_split
Note: in the case of global_substitute
and substitute_first
,
a call to matched_string
is only valid within the subst
argument,
not after global_substitute
or substitute_first
returns.
The user must make sure that the parameter s
is the same string
that was passed to the matching or searching function.
val match_beginning : unit -> int
match_beginning()
returns the position of the first character
of the substring that was matched by the last call to a matching
or searching function (see Str.matched_string
for details).
val match_end : unit -> int
match_end()
returns the position of the character following the
last character of the substring that was matched by the last call
to a matching or searching function (see Str.matched_string
for
details).
val matched_group : int -> string -> string
matched_group n s
returns the substring of s
that was matched
by the n
th group \(...\)
of the regular expression that was
matched by the last call to a matching or searching function (see
Str.matched_string
for details). When n
is 0
, it returns the
substring matched by the whole regular expression.
The user must make sure that the parameter s
is the same string
that was passed to the matching or searching function.
Not_found
if the n
th group
of the regular expression was not matched. This can happen
with groups inside alternatives \|
, options ?
or repetitions *
. For instance, the empty string will match
\(a\)*
, but matched_group 1 ""
will raise Not_found
because the first group itself was not matched.val group_beginning : int -> int
group_beginning n
returns the position of the first character
of the substring that was matched by the n
th group of
the regular expression that was matched by the last call to a
matching or searching function (see Str.matched_string
for details).
Not_found
if the n
th group of the regular expression
was not matched.Invalid_argument
if there are fewer than n
groups in
the regular expression.val group_end : int -> int
group_end n
returns
the position of the character following the last character of
substring that was matched by the n
th group of the regular
expression that was matched by the last call to a matching or
searching function (see Str.matched_string
for details).
Not_found
if the n
th group of the regular expression
was not matched.Invalid_argument
if there are fewer than n
groups in
the regular expression.val global_replace : regexp -> string -> string -> string
global_replace regexp templ s
returns a string identical to s
,
except that all substrings of s
that match regexp
have been
replaced by templ
. The replacement template templ
can contain
\1
, \2
, etc; these sequences will be replaced by the text
matched by the corresponding group in the regular expression.
\0
stands for the text matched by the whole regular expression.
val replace_first : regexp -> string -> string -> string
Same as Str.global_replace
, except that only the first substring
matching the regular expression is replaced.
val global_substitute : regexp -> (string -> string) -> string -> string
global_substitute regexp subst s
returns a string identical
to s
, except that all substrings of s
that match regexp
have been replaced by the result of function subst
. The
function subst
is called once for each matching substring,
and receives s
(the whole text) as argument.
val substitute_first : regexp -> (string -> string) -> string -> string
Same as Str.global_substitute
, except that only the first substring
matching the regular expression is replaced.
val replace_matched : string -> string -> string
replace_matched repl s
returns the replacement text repl
in which \1
, \2
, etc. have been replaced by the text
matched by the corresponding groups in the regular expression
that was matched by the last call to a matching or searching
function (see Str.matched_string
for details).
s
must be the same string that was passed to the matching or
searching function.
val split : regexp -> string -> string list
split r s
splits s
into substrings, taking as delimiters
the substrings that match r
, and returns the list of substrings.
For instance, split (regexp "[ \t]+") s
splits s
into
blank-separated words. An occurrence of the delimiter at the
beginning or at the end of the string is ignored.
val bounded_split : regexp -> string -> int -> string list
Same as Str.split
, but splits into at most n
substrings,
where n
is the extra integer parameter.
val split_delim : regexp -> string -> string list
Same as Str.split
but occurrences of the
delimiter at the beginning and at the end of the string are
recognized and returned as empty strings in the result.
For instance, split_delim (regexp " ") " abc "
returns [""; "abc"; ""]
, while split
with the same
arguments returns ["abc"]
.
val bounded_split_delim : regexp -> string -> int -> string list
Same as Str.bounded_split
, but occurrences of the
delimiter at the beginning and at the end of the string are
recognized and returned as empty strings in the result.
type
split_result =
| |
Text of |
| |
Delim of |
val full_split : regexp -> string -> split_result list
Same as Str.split_delim
, but returns
the delimiters as well as the substrings contained between
delimiters. The former are tagged Delim
in the result list;
the latter are tagged Text
. For instance,
full_split (regexp "[{}]") "{ab}"
returns
[Delim "{"; Text "ab"; Delim "}"]
.
val bounded_full_split : regexp -> string -> int -> split_result list
Same as Str.bounded_split_delim
, but returns
the delimiters as well as the substrings contained between
delimiters. The former are tagged Delim
in the result list;
the latter are tagged Text
.
val string_before : string -> int -> string
string_before s n
returns the substring of all characters of s
that precede position n
(excluding the character at
position n
).
val string_after : string -> int -> string
string_after s n
returns the substring of all characters of s
that follow position n
(including the character at
position n
).
val first_chars : string -> int -> string
first_chars s n
returns the first n
characters of s
.
This is the same function as Str.string_before
.
val last_chars : string -> int -> string
last_chars s n
returns the last n
characters of s
.


In this notebook, some template code has already been provided for you, and you will need to implement additional functionality to successfully complete this project. You will not need to modify the included code beyond what is requested. Sections that begin with '(IMPLEMENTATION)' in the header indicate that the following block of code will require additional functionality which you must provide. Instructions will be provided for each section, and the specifics of the implementation are marked in the code block with a 'TODO' statement. Please be sure to read the instructions carefully!
Note: Once you have completed all of the code implementations, you need to finalize your work by exporting the iPython Notebook as an HTML document. Before exporting the notebook to html, all of the code cells need to have been run so that reviewers can see the final implementation and output. You can then export the notebook by using the menu above and navigating to \n", "File -> Download as -> HTML (.html). Include the finished document along with this notebook as your submission.
In addition to implementing code, there will be questions that you must answer which relate to the project and your implementation. Each section where you will answer a question is preceded by a 'Question X' header. Carefully read each question and provide thorough answers in the following text boxes that begin with 'Answer:'. Your project submission will be evaluated based on your answers to each of the questions and the implementation you provide.
Note: Code and Markdown cells can be executed using the Shift + Enter keyboard shortcut. Markdown cells can be edited by double-clicking the cell to enter edit mode.
The rubric contains optional "Stand Out Suggestions" for enhancing the project beyond the minimum requirements. If you decide to pursue the "Stand Out Suggestions", you should include the code in this IPython notebook.
In this notebook, you will make the first steps towards developing an algorithm that could be used as part of a mobile or web app. At the end of this project, your code will accept any user-supplied image as input. If a dog is detected in the image, it will provide an estimate of the dog's breed. If a human is detected, it will provide an estimate of the dog breed that is most resembling. The image below displays potential sample output of your finished project (... but we expect that each student's algorithm will behave differently!).
In this real-world setting, you will need to piece together a series of models to perform different tasks; for instance, the algorithm that detects humans in an image will be different from the CNN that infers dog breed. There are many points of possible failure, and no perfect algorithm exists. Your imperfect solution will nonetheless create a fun user experience!
We break the notebook into separate steps. Feel free to use the links below to navigate the notebook.
In the code cell below, we import a dataset of dog images. We populate a few variables through the use of the load_files
function from the scikit-learn library:
train_files
, valid_files
, test_files
- numpy arrays containing file paths to imagestrain_targets
, valid_targets
, test_targets
- numpy arrays containing onehot-encoded classification labels dog_names
- list of string-valued dog breed names for translating labelsfrom sklearn.datasets import load_files
from keras.utils import np_utils
import numpy as np
from glob import glob
# define function to load train, test, and validation datasets
def load_dataset(path):
data = load_files(path)
dog_files = np.array(data['filenames'])
dog_targets = np_utils.to_categorical(np.array(data['target']), 133)
return dog_files, dog_targets
# load train, test, and validation datasets
train_files, train_targets = load_dataset('dogImages/train')
valid_files, valid_targets = load_dataset('dogImages/valid')
test_files, test_targets = load_dataset('dogImages/test')
# load list of dog names
dog_names = [item[20:-1] for item in sorted(glob("dogImages/train/*/"))]
# print statistics about the dataset
print('There are %d total dog categories.' % len(dog_names))
print('There are %s total dog images.\n' % len(np.hstack([train_files, valid_files, test_files])))
print('There are %d training dog images.' % len(train_files))
print('There are %d validation dog images.' % len(valid_files))
print('There are %d test dog images.'% len(test_files))
In the code cell below, we import a dataset of human images, where the file paths are stored in the numpy array human_files
.
import random
random.seed(8675309)
# load filenames in shuffled human dataset
human_files = np.array(glob("lfw/*/*"))
random.shuffle(human_files)
# print statistics about the dataset
print('There are %d total human images.' % len(human_files))
We use OpenCV's implementation of Haar feature-based cascade classifiers to detect human faces in images. OpenCV provides many pre-trained face detectors, stored as XML files on github. We have downloaded one of these detectors and stored it in the haarcascades
directory.
In the next code cell, we demonstrate how to use this detector to find human faces in a sample image.
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
# extract pre-trained face detector
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_alt.xml')
# load color (BGR) image
img = cv2.imread(human_files[3])
# convert BGR image to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# find faces in image
faces = face_cascade.detectMultiScale(gray)
# print number of faces detected in the image
print('Number of faces detected:', len(faces))
# get bounding box for each detected face
for (x,y,w,h) in faces:
# add bounding box to color image
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# convert BGR image to RGB for plotting
cv_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# display the image, along with bounding box
plt.imshow(cv_rgb)
plt.show()
Before using any of the face detectors, it is standard procedure to convert the images to grayscale. The detectMultiScale
function executes the classifier stored in face_cascade
and takes the grayscale image as a parameter.
In the above code, faces
is a numpy array of detected faces, where each row corresponds to a detected face. Each detected face is a 1D array with four entries that specifies the bounding box of the detected face. The first two entries in the array (extracted in the above code as x
and y
) specify the horizontal and vertical positions of the top left corner of the bounding box. The last two entries in the array (extracted here as w
and h
) specify the width and height of the box.
We can use this procedure to write a function that returns True
if a human face is detected in an image and False
otherwise. This function, aptly named face_detector
, takes a string-valued file path to an image as input and appears in the code block below.
# returns "True" if face is detected in image stored at img_path
def face_detector(img_path):
img = cv2.imread(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
return len(faces) > 0
Question 1: Use the code cell below to test the performance of the face_detector
function.
human_files
have a detected human face? dog_files
have a detected human face?  You will see that our algorithm falls short of this goal, but still gives acceptable performance. We extract the file paths for the first 100 images from each of the datasets and store them in the numpy arrays human_files_short
and dog_files_short
.
Answer:
human_files_short = human_files[:100]
dog_files_short = train_files[:100]
# Do NOT modify the code above this line.
## TODO: Test the performance of the face_detector algorithm
## on the images in human_files_short and dog_files_short.
human_files_detected = [h for h in human_files_short if face_detector(h)]
h_pc = len(human_files_detected) * 1.
print("Human files percentage: {}%".format(h_pc))
dog_files_detected = [d for d in dog_files_short if face_detector(d)]
d_pc = len(dog_files_detected) * 1.
print("Dog files percentage: {}%".format(d_pc))
Question 2: This algorithmic choice necessitates that we communicate to the user that we accept human images only when they provide a clear view of a face (otherwise, we risk having unneccessarily frustrated users!). In your opinion, is this a reasonable expectation to pose on the user? If not, can you think of a way to detect humans in images that does not necessitate an image with a clearly presented face?
Answer:
We suggest the face detector from OpenCV as a potential way to detect human images in your algorithm, but you are free to explore other approaches, especially approaches that make use of deep learning :). Please use the code cell below to design and test your own face detection algorithm. If you decide to pursue this optional task, report performance on each of the datasets.
## (Optional) TODO: Report the performance of another
## face detection algorithm on the LFW dataset
### Feel free to use as many code cells as needed.
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D, Activation
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
from keras.callbacks import ModelCheckpoint
def resize_image(img_path):
img = cv2.imread(img_path)
return cv2.resize(img, (224, 224))
humans_resized = [resize_image(i) for i in human_files]
print("humans dataset resize done! Size: %d." % len(humans_resized))
dogs_resized = [resize_image(i) for i in train_files]
print("dogs dataset resize done! Size: %d." % len(dogs_resized))
def face_detector1(img):
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
return len(faces) > 0
humans_short = humans_resized[:500]
dogs_short = dogs_resized[:500]
humans_label = []
for x in humans_short:
humans_label.append([1, 0])
humans_label = np.array(humans_label, dtype=np.float32)
dogs_label = []
for x in dogs_short:
dogs_label.append([0, 1])
dogs_label = np.array(dogs_label, dtype=np.float32)
dvh_X = np.concatenate((humans_short, dogs_short), axis=0)
dvh_y = np.concatenate((humans_label, dogs_label), axis=0)
print("Training dataset done!")
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=(5, 5), input_shape=(224, 224, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding='same'))
model.add(Conv2D(filters=32, kernel_size=(3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(1,1), padding='same'))
model.add(GlobalAveragePooling2D())
model.add(Dropout(0.2))
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dense(2))
model.add(Activation("softmax"))
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.dogs_vs_humans.hdf5',
verbose=1, save_best_only=True)
model.fit(dvh_X, dvh_y, epochs=50, batch_size=32, callbacks=[checkpointer], verbose=1)
model.save_weights("saved_models/weights.best.dogs_vs_humans.hdf5")
humans_test = humans_resized[600:700]
dogs_test = dogs_resized[600:700]
dvh_test = np.concatenate((humans_test, dogs_test), axis=0)
dvh_prediction = [np.argmax(model.predict(np.expand_dims(t, axis=0))) for t in dvh_test]
dvh_label = []
for i in range(0, 100):
dvh_label.append(0)
for i in range(0, 100):
dvh_label.append(1)
accuracy = np.sum(np.array(dvh_prediction) == np.array(dvh_label)) * 100 / len(dvh_test)
print('Test accuracy: %.2f%%' % accuracy)
It is difficult to ask usrs provide only clear view of a face in real-life scenarios. Therefore, we may receive the face front view or side view. For the case, we could use different kinds of xml cascade file in opencv to defect faces. However, the way could not include all cases and it would consume lots of time to confirm each case. So, I construct a deep learning network for detecting faces. It could classify image well if we have amounts of images and variety images. According the above result, we train the model by 500 humans and 500 dogs, and test 200 images. The accuracy arrives 96%. It means the method is feasible.
In this section, we use a pre-trained ResNet-50 model to detect dogs in images. Our first line of code downloads the ResNet-50 model, along with weights that have been trained on ImageNet, a very large, very popular dataset used for image classification and other vision tasks. ImageNet contains over 10 million URLs, each linking to an image containing an object from one of 1000 categories. Given an image, this pre-trained ResNet-50 model returns a prediction (derived from the available categories in ImageNet) for the object that is contained in the image.
from keras.applications.resnet50 import ResNet50
# define ResNet50 model
ResNet50_model = ResNet50(weights='imagenet')
When using TensorFlow as backend, Keras CNNs require a 4D array (which we'll also refer to as a 4D tensor) as input, with shape
$$ (\text{nb_samples}, \text{rows}, \text{columns}, \text{channels}), $$where nb_samples
corresponds to the total number of images (or samples), and rows
, columns
, and channels
correspond to the number of rows, columns, and channels for each image, respectively.
The path_to_tensor
function below takes a string-valued file path to a color image as input and returns a 4D tensor suitable for supplying to a Keras CNN. The function first loads the image and resizes it to a square image that is $224 \times 224$ pixels. Next, the image is converted to an array, which is then resized to a 4D tensor. In this case, since we are working with color images, each image has three channels. Likewise, since we are processing a single image (or sample), the returned tensor will always have shape
The paths_to_tensor
function takes a numpy array of string-valued image paths as input and returns a 4D tensor with shape
Here, nb_samples
is the number of samples, or number of images, in the supplied array of image paths. It is best to think of nb_samples
as the number of 3D tensors (where each 3D tensor corresponds to a different image) in your dataset!
from keras.preprocessing import image
from tqdm import tqdm
def path_to_tensor(img_path):
# loads RGB image as PIL.Image.Image type
img = image.load_img(img_path, target_size=(224, 224))
# convert PIL.Image.Image type to 3D tensor with shape (224, 224, 3)
x = image.img_to_array(img)
# convert 3D tensor to 4D tensor with shape (1, 224, 224, 3) and return 4D tensor
return np.expand_dims(x, axis=0)
def paths_to_tensor(img_paths):
list_of_tensors = [path_to_tensor(img_path) for img_path in tqdm(img_paths)]
return np.vstack(list_of_tensors)
Getting the 4D tensor ready for ResNet-50, and for any other pre-trained model in Keras, requires some additional processing. First, the RGB image is converted to BGR by reordering the channels. All pre-trained models have the additional normalization step that the mean pixel (expressed in RGB as $[103.939, 116.779, 123.68]$ and calculated from all pixels in all images in ImageNet) must be subtracted from every pixel in each image. This is implemented in the imported function preprocess_input
. If you're curious, you can check the code for preprocess_input
here.
Now that we have a way to format our image for supplying to ResNet-50, we are now ready to use the model to extract the predictions. This is accomplished with the predict
method, which returns an array whose $i$-th entry is the model's predicted probability that the image belongs to the $i$-th ImageNet category. This is implemented in the ResNet50_predict_labels
function below.
By taking the argmax of the predicted probability vector, we obtain an integer corresponding to the model's predicted object class, which we can identify with an object category through the use of this dictionary.
from keras.applications.resnet50 import preprocess_input, decode_predictions
def ResNet50_predict_labels(img_path):
# returns prediction vector for image located at img_path
img = preprocess_input(path_to_tensor(img_path))
return np.argmax(ResNet50_model.predict(img))
While looking at the dictionary, you will notice that the categories corresponding to dogs appear in an uninterrupted sequence and correspond to dictionary keys 151-268, inclusive, to include all categories from 'Chihuahua'
to 'Mexican hairless'
. Thus, in order to check to see if an image is predicted to contain a dog by the pre-trained ResNet-50 model, we need only check if the ResNet50_predict_labels
function above returns a value between 151 and 268 (inclusive).
We use these ideas to complete the dog_detector
function below, which returns True
if a dog is detected in an image (and False
if not).
### returns "True" if a dog is detected in the image stored at img_path
def dog_detector(img_path):
prediction = ResNet50_predict_labels(img_path)
return ((prediction <= 268) & (prediction >= 151))
Question 3: Use the code cell below to test the performance of your dog_detector
function.
human_files_short
have a detected dog? dog_files_short
have a detected dog?Answer:
### TODO: Test the performance of the dog_detector function
### on the images in human_files_short and dog_files_short.
human_files_detected = [h for h in human_files_short if dog_detector(h)]
h_pc = len(human_files_detected) * 1.
print("Human files percentage: {}%".format(h_pc))
dog_files_detected = [d for d in dog_files_short if dog_detector(d)]
d_pc = len(dog_files_detected) * 1.
print("Dog files percentage: {}%".format(d_pc))
Now that we have functions for detecting humans and dogs in images, we need a way to predict breed from images. In this step, you will create a CNN that classifies dog breeds. You must create your CNN from scratch (so, you can't use transfer learning yet!), and you must attain a test accuracy of at least 1%. In Step 5 of this notebook, you will have the opportunity to use transfer learning to create a CNN that attains greatly improved accuracy.
Be careful with adding too many trainable layers! More parameters means longer training, which means you are more likely to need a GPU to accelerate the training process. Thankfully, Keras provides a handy estimate of the time that each epoch is likely to take; you can extrapolate this estimate to figure out how long it will take for your algorithm to train.
We mention that the task of assigning breed to dogs from images is considered exceptionally challenging. To see why, consider that even a human would have great difficulty in distinguishing between a Brittany and a Welsh Springer Spaniel.
| Brittany | Welsh Springer Spaniel |
|---|---|
It is not difficult to find other dog breed pairs with minimal inter-class variation (for instance, Curly-Coated Retrievers and American Water Spaniels).
| Curly-Coated Retriever | American Water Spaniel |
|---|---|
Likewise, recall that labradors come in yellow, chocolate, and black. Your vision-based algorithm will have to conquer this high intra-class variation to determine how to classify all of these different shades as the same breed.
| Yellow Labrador | Chocolate Labrador | Black Labrador |
|---|---|---|
We also mention that random chance presents an exceptionally low bar: setting aside the fact that the classes are slightly imabalanced, a random guess will provide a correct answer roughly 1 in 133 times, which corresponds to an accuracy of less than 1%.
Remember that the practice is far ahead of the theory in deep learning. Experiment with many different architectures, and trust your intuition. And, of course, have fun!
We rescale the images by dividing every pixel in every image by 255.
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
# pre-process the data for Keras
train_tensors = paths_to_tensor(train_files).astype('float32')/255
valid_tensors = paths_to_tensor(valid_files).astype('float32')/255
test_tensors = paths_to_tensor(test_files).astype('float32')/255
Create a CNN to classify dog breed. At the end of your code cell block, summarize the layers of your model by executing the line:
model.summary()
We have imported some Python modules to get you started, but feel free to import as many modules as you need. If you end up getting stuck, here's a hint that specifies a model that trains relatively fast on CPU and attains >1% test accuracy in 5 epochs:
Question 4: Outline the steps you took to get to your final CNN architecture and your reasoning at each step. If you chose to use the hinted architecture above, describe why you think that CNN architecture should work well for the image classification task.
Answer: I finally use the standard basic CNN which includes convolution layers with periodic spatial reduction by maxpooling function for dog image recognition, fully connnected layers for bridging the information learning during convolutions and the final output predictions, and dropout function to avoid overfitting. ReLU activations are used for all layers except the output layer, which used the softmax activiation for classification. In addition, I design the structure with increasing the number of filters, because I think we need more detail higher level features to help classification.
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
model = Sequential()
### TODO: Define your architecture.
model.add(Conv2D(filters = 32, kernel_size = (3,3), input_shape = (224, 224, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding='same'))
model.add(Conv2D(filters = 64, kernel_size = (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding='same'))
model.add(Conv2D(filters = 128, kernel_size = (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding='same'))
model.add(GlobalAveragePooling2D())
model.add(Dense(500, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(133))
model.add(Activation("softmax"))
model.summary()
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
Train your model in the code cell below. Use model checkpointing to save the model that attains the best validation loss.
You are welcome to augment the training data, but this is not a requirement.
from keras.callbacks import ModelCheckpoint
### TODO: specify the number of epochs that you would like to use to train the model.
epochs = 5
### Do NOT modify the code below this line.
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.from_scratch.hdf5',
verbose=1, save_best_only=True)
model.fit(train_tensors, train_targets,
validation_data=(valid_tensors, valid_targets),
epochs=epochs, batch_size=20, callbacks=[checkpointer], verbose=1)
model.load_weights('saved_models/weights.best.from_scratch.hdf5')
Try out your model on the test dataset of dog images. Ensure that your test accuracy is greater than 1%.
# get index of predicted dog breed for each image in test set
dog_breed_predictions = [np.argmax(model.predict(np.expand_dims(tensor, axis=0))) for tensor in test_tensors]
# report test accuracy
test_accuracy = 100*np.sum(np.array(dog_breed_predictions)==np.argmax(test_targets, axis=1))/len(dog_breed_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
bottleneck_features = np.load('bottleneck_features/DogVGG16Data.npz')
train_VGG16 = bottleneck_features['train']
valid_VGG16 = bottleneck_features['valid']
test_VGG16 = bottleneck_features['test']
The model uses the the pre-trained VGG-16 model as a fixed feature extractor, where the last convolutional output of VGG-16 is fed as input to our model. We only add a global average pooling layer and a fully connected layer, where the latter contains one node for each dog category and is equipped with a softmax.
VGG16_model = Sequential()
VGG16_model.add(GlobalAveragePooling2D(input_shape=train_VGG16.shape[1:]))
VGG16_model.add(Dense(133, activation='softmax'))
VGG16_model.summary()
VGG16_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.VGG16.hdf5',
verbose=1, save_best_only=True)
VGG16_model.fit(train_VGG16, train_targets,
validation_data=(valid_VGG16, valid_targets),
epochs=20, batch_size=20, callbacks=[checkpointer], verbose=1)
VGG16_model.load_weights('saved_models/weights.best.VGG16.hdf5')
Now, we can use the CNN to test how well it identifies breed within our test dataset of dog images. We print the test accuracy below.
# get index of predicted dog breed for each image in test set
VGG16_predictions = [np.argmax(VGG16_model.predict(np.expand_dims(feature, axis=0))) for feature in test_VGG16]
# report test accuracy
test_accuracy = 100*np.sum(np.array(VGG16_predictions)==np.argmax(test_targets, axis=1))/len(VGG16_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
from extract_bottleneck_features import *
def VGG16_predict_breed(img_path):
# extract bottleneck features
bottleneck_feature = extract_VGG16(path_to_tensor(img_path))
# obtain predicted vector
predicted_vector = VGG16_model.predict(bottleneck_feature)
# return dog breed that is predicted by the model
return dog_names[np.argmax(predicted_vector)]
You will now use transfer learning to create a CNN that can identify dog breed from images. Your CNN must attain at least 60% accuracy on the test set.
In Step 4, we used transfer learning to create a CNN using VGG-16 bottleneck features. In this section, you must use the bottleneck features from a different pre-trained model. To make things easier for you, we have pre-computed the features for all of the networks that are currently available in Keras:
The files are encoded as such:
Dog{network}Data.npz
where {network}
, in the above filename, can be one of VGG19
, Resnet50
, InceptionV3
, or Xception
. Pick one of the above architectures, download the corresponding bottleneck features, and store the downloaded file in the bottleneck_features/
folder in the repository.
In the code block below, extract the bottleneck features corresponding to the train, test, and validation sets by running the following:
bottleneck_features = np.load('bottleneck_features/Dog{network}Data.npz')
train_{network} = bottleneck_features['train']
valid_{network} = bottleneck_features['valid']
test_{network} = bottleneck_features['test']
### TODO: Obtain bottleneck features from another pre-trained CNN.
import numpy as np
bottleneck_features = np.load('bottleneck_features/DogInceptionV3Data.npz')
train_InceptionV3 = bottleneck_features['train']
valid_InceptionV3 = bottleneck_features['valid']
test_InceptionV3 = bottleneck_features['test']
Create a CNN to classify dog breed. At the end of your code cell block, summarize the layers of your model by executing the line:
<your model's name>.summary()
Question 5: Outline the steps you took to get to your final CNN architecture and your reasoning at each step. Describe why you think the architecture is suitable for the current problem.
Answer: GlobalAveragePooling2D is used to flatten the features into 1D vector, because we need to feed the input layer into a fully connected layer for classification. Then, dropout function is used to avoid overfitting. Lastly, the final dense layer adopt softmax activation to predict the probability of each breed.
### TODO: Define your architecture.
from keras.layers import GlobalAveragePooling2D
from keras.layers import Dropout, Dense
from keras.models import Sequential
inception_model = Sequential()
inception_model.add(GlobalAveragePooling2D(input_shape=train_InceptionV3.shape[1:]))
inception_model.add(Dense(500, activation='relu'))
inception_model.add(Dropout(0.4))
inception_model.add(Dense(133, activation='softmax'))
inception_model.summary()
### TODO: Compile the model.
inception_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
Train your model in the code cell below. Use model checkpointing to save the model that attains the best validation loss.
You are welcome to augment the training data, but this is not a requirement.
### TODO: Train the model.
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.inception.hdf5',
verbose=1, save_best_only=True)
inception_model.fit(train_InceptionV3, train_targets,
validation_data=(valid_InceptionV3, valid_targets),
epochs=20, batch_size=20, callbacks=[checkpointer], verbose=1)
### TODO: Load the model weights with the best validation loss.
inception_model.load_weights('saved_models/weights.best.inception.hdf5')
Try out your model on the test dataset of dog images. Ensure that your test accuracy is greater than 60%.
### TODO: Calculate classification accuracy on the test dataset.
inception_predictions = [np.argmax(inception_model.predict(np.expand_dims(feature, axis=0))) for feature in test_InceptionV3]
# report test accuracy
test_accuracy = 100*np.sum(np.array(inception_predictions)==np.argmax(test_targets, axis=1))/len(inception_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
Write a function that takes an image path as input and returns the dog breed (Affenpinscher
, Afghan_hound
, etc) that is predicted by your model.
Similar to the analogous function in Step 5, your function should have three steps:
dog_names
array defined in Step 0 of this notebook to return the corresponding breed.The functions to extract the bottleneck features can be found in extract_bottleneck_features.py
, and they have been imported in an earlier code cell. To obtain the bottleneck features corresponding to your chosen CNN architecture, you need to use the function
extract_{network}
where {network}
, in the above filename, should be one of VGG19
, Resnet50
, InceptionV3
, or Xception
.
### TODO: Write a function that takes a path to an image as input
### and returns the dog breed that is predicted by the model.
def InceptionV3_predict_breed(img_path):
# extract bottleneck features
bottleneck_feature = extract_InceptionV3(path_to_tensor(img_path))
# obtain predicted vector
predicted_vector = inception_model.predict(bottleneck_feature)
# return dog breed that is predicted by the model
return dog_names[np.argmax(predicted_vector)]
Write an algorithm that accepts a file path to an image and first determines whether the image contains a human, dog, or neither. Then,
You are welcome to write your own functions for detecting humans and dogs in images, but feel free to use the face_detector
and dog_detector
functions developed above. You are required to use your CNN from Step 5 to predict dog breed.
Some sample output for our algorithm is provided below, but feel free to design your own user experience!
### TODO: Write your algorithm.
### Feel free to use as many code cells as needed.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def human_dog_detector_InceptionV3(img_path):
img = mpimg.imread(img_path)
_ = plt.imshow(img)
if face_detector(img_path):
plt.title("The human in the image is most likely a %s." % InceptionV3_predict_breed(img_path));
elif dog_detector(img_path):
plt.title ("The dog in the image is most likely a %s." % InceptionV3_predict_breed(img_path));
else:
print("Please input an image of either a human or a dog!")
plt.show()
return
dog_breed_detector_InceptionV3("images/human.jpg")
In this section, you will take your new algorithm for a spin! What kind of dog does the algorithm think that you look like? If you have a dog, does it predict your dog's breed accurately? If you have a cat, does it mistakenly think that your cat is a dog?
Test your algorithm at least six images on your computer. Feel free to use any images you like. Use at least two human and two dog images.
Question 6: Is the output better than you expected :) ? Or worse :( ? Provide at least three possible points of improvement for your algorithm.
Answer: I think the prediction results are not good enough. First, the face side view can't be recongnized as a human. Second, the model predicts the cat image as a human. Third, I couldn't understand why the human images are recognized as Chesapeake_bay_retriever and Great_pyrenees. At least, the colors don't match between dogs and humans. However, I think the dog images are classified well, because I could see they are related between images and prediction results.
## TODO: Execute your algorithm from Step 6 on
## at least 6 images on your computer.
## Feel free to use as many code cells as needed.
examples = ["images/human_test1.jpg","images/human_test2.jpg", "images/human_test3.jpg","images/dog_test1.jpg","images/dog_test2.jpg","images/cat_test.jpg"]
for i in range (0,6):
dog_breed_detector_InceptionV3(examples[i])


<ui-selector>your label here</ui-selector>
Set as selected by default by providing the input 'selected' with a value of true
<ui-selector [selected]="true">selected by default</ui-selector>


This instance is bundled with 4 components "src/concr", "src/neoan", "src/aceEditor" and this setup ("src/install") as well as
one frame ("frame/concr").
This setup is intended to help you setting up a minimal configuration to run "concr"
The Javascript-Ajax-API works!
There is an issue with the JS-API. Please debug.
config.php correct? .htaccess correct?
Use your browsers debugger and execute the call:
MYSQL-connection could not be established. Please check "frame/concr/config.php" for credentials.
MYSQL-connection looks fine.
While the connection works, there does not seem to be a database "{{db_name}}".
You may consider changing "default.php" in order to change the default controller to your current project.


HideEntity()
语法
HideEntity(#Entity, State)
Hides or shows the specified #Entity. 'State' can take the following values: 1: the #Entity is hidden 0: the #Entity is shown
1: the #Entity is hidden 0: the #Entity is shown
已支持操作系统
所有


This is a collection of results respresenting what folks think the core personality/focus of the department or organization actually is. Nothing official, just what the general "vox pop" thinks.
If you're interested in growing your career in the folowwing dimensions CSPS would be a great place to check out if you want more experience in
This data was generated by aggregating the thoughts of 130 public servants from across 8 departments


Add a New Category
Category Name:
Weight:
Parent Category:
Tests
Projects
Homework
OK
Cancel
Add New Category


SMA
Enabled
―― SMA1
··· SMA2
EMA
Enabled
―― EMA 1
··· EMA 2
Session
Operations
Total Profit
Average Percentage
Source
Pair
Interval
Max Cost
Buy Strategy
Buy Value
Trailing Buy
Sell Strategy
Sell Value
Trailing Profit
Stop Loss Trigger
SMA Period
SMA 1
SMA 2
SMA Cross Candles
EMA Period
EMA 1
EMA 2
EMA Cross Candles
BB Period
BB SMA
Events
Watching Buy
Trailing Buy
Buy
Watching Sell
Trailing Sell
Sell


My name is Nate Winn, and I live in the heart of the Silicon Valley with my wife Jo and my little boy, Owen. Currently, I'm a part of the RubyOnRails cohort at The Iron Yard based out of Atlanta Tech Village.
You'll find me writing about a myriad of topics here, but mostly coding, technology, and design. This has been my virtual home since 2014.
This blog is run on Jekyll, built on the Lanyon theme, written in Markdown, hosted on GitHub Pages, and proofed by my amazing wife (you should hire her).
I'm a fan of Apple products. I write and code on a 2011 13-inch MacBook Air and talk and text on an iPhone 5. I also snap pictures on a Canon70D.
My software toolbox is pretty basic though I'm constantly trying out new tools to see if my workflow improves. I've found that I don't need a bunch of fancy tools to get the job done, just a few really good ones. Here's a list of what I use on the daily.
In addition, I couldn't do without The Roost Stand to perch my laptop, Parrot Zik Headphones to block out distractions, and the Apple Wireless Keyboard and Apple Magic Mouse combo. I'm always scribbling down my thoughts in various notebooks. Currently, these are captured in a Barron Fig Confidant. And last, but not least, I tote everything around in a Minaal backpack.
Feel free to reach out to me anytime with comments or on Twitter at @natewinn
Thanks for reading!


|
|
bool | not_found = False |
| |
| dictionary | error_messages |
| |
| | song_title |
| |
| | song_artist |
| |
A search song form.
Definition at line 8 of file song_search_form.py.
◆ __init__()
| def capstoneproject.app_forms.song_search_form.SongSearchForm.__init__ |
( |
|
self, |
|
|
|
args, |
|
|
|
kwargs |
|
) |
| |
Initialize the song search form.
:param args:
:param kwargs:
Definition at line 30 of file song_search_form.py.
◆ get_creator()
| def capstoneproject.app_forms.song_search_form.SongSearchForm.get_creator |
( |
|
self | ) |
|
Returns the song artist.
:return: A string, the song artist.
Definition at line 71 of file song_search_form.py.
◆ get_title()
| def capstoneproject.app_forms.song_search_form.SongSearchForm.get_title |
( |
|
self | ) |
|
Returns the song title.
:return: A string, the song title.
Definition at line 64 of file song_search_form.py.
◆ no_title_error()
| def capstoneproject.app_forms.song_search_form.SongSearchForm.no_title_error |
( |
|
self | ) |
|
Add a no title error to the song title field if no song title was given.
:return: None.
Definition at line 57 of file song_search_form.py.
◆ not_found_error()
| def capstoneproject.app_forms.song_search_form.SongSearchForm.not_found_error |
( |
|
self | ) |
|
Add a not found error to the song artist field.
:return: None.
Definition at line 49 of file song_search_form.py.
◆ error_messages
| dictionary capstoneproject.app_forms.song_search_form.SongSearchForm.error_messages |
|
static |
Initial value:= {'not_found': _("No song using the given title and given artist was found"),
'no_title': _("No song title was provided")}
Definition at line 13 of file song_search_form.py.
◆ song_artist
| capstoneproject.app_forms.song_search_form.SongSearchForm.song_artist |
|
static |
Initial value:= forms.CharField(
label='Artist',
max_length=30,
strip=False,
required=False,
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter artist'}))
Definition at line 23 of file song_search_form.py.
◆ song_title
| capstoneproject.app_forms.song_search_form.SongSearchForm.song_title |
|
static |
Initial value:= forms.CharField(
label='Song Title',
max_length=30,
strip=False,
required=False,
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter song title'}))
Definition at line 16 of file song_search_form.py.
The documentation for this class was generated from the following file:


| Digits | Gold & Silver Amounts |
|---|---|
| $howToPlayRecommended["onlyNumbers"][i][0] | $howToPlayRecommended["onlyNumbers"][i][1] |
$def with (isLoggedIn, howToPlayLevels, howToPlayRecommended) $var css: $if isLoggedIn: $var logout: True $var link1: Back to Levels $var link2: Leaderboard
There is a hidden Password in each game and your purpose is to reveal it by making sequential guesses.
When you first login to the Password game, it will display a setup page. You can start playing level by level or create a custom game.
If you choose to play level by level, Level 1 will appear unlocked to start off. If you win the game in Level 1, you will unlock Level 2. You can start a new game in any of the unlocked levels. Winning a game in one level unlocks the next level. If you lose a game, no new level will be unlocked.
If you choose to create a Custom Game, you will need to specify several Password and Game criteria.
First, you need to decide how long the Password will be (digits) and which characters will be used to create the Password (complexity). Number of digits can be any number from 4 to 8. Password can be composed of four different sets of possible characters: (1) only numbers (2) only lowercase letters, (3) both numbers and lowercase letters and (4) numbers, lowercase letters and uppercase letters.
Next, you need to indicate the number of Gold and Silver coins in your bag. You will get feedback on your guesses by spending those coins. You have to spend 1 Gold coin to find out ‘1 character in your guess is in the right spot’ and 1 Silver coin to find out ‘1 character in your guess matched with one of the Password characters, however it is in the wrong spot’. If you ran out of either one of the Gold and Silver coins, evaluation for your guess wont be reported. If both Gold and Silver coins are used up, game ends and you lose. You can see the ‘Recommended Coin Amounts’ section for reference.
If you click on the “Quit Game” button on the menu, you will automatically lose.
You can leave a game at any point by clicking on the “Freeze Game” button on menu. Games that have not been won or lost will be saved as your “Active Games”. You can come back later and continue playing from where you left off.
$m
Length: 4
Complexity: Only Numbers
Gold Coins in the bag: 30
Silver Coins in the bag: 30
Let's say you submitted '1-2-3-4' and received 1 Gold and 2 Silver coins. Then, you should keep one of the numbers you submitted (i.e. 1-2-3-4) in place; and change the places of the two of your numbers. total number of coins received is 3, which means 1 number you submitted does not even exists in the Password.
Let's now try with a new guess:
Let's say now you submitted '1-2-4-5' and received 2 Gold and no Silver coins. This should be a good guess, as throwing out number '3' in the second guess, you now know that is actually existed in the Password - although you cannot be sure if it was in the right spot.
Say now you submit '1-2-6-3' based on the number of Gold and Silver coins you received in the previous guesses
And Voila!! You guesses the Password correctly.
$ m = '*******\n* *\n* *\n* *\n* *\n*******' $ star = [1, 2, 6, 3]$m
$m
Length: 4
Complexity: Only Numbers
Gold Coins in the bag: 30
Silver Coins in the bag: 30
Let's say you submitted '1-2-3-4' and received 1 Gold and 2 Silver coins. Then, you should keep one of the numbers you submitted (i.e. 1-2-3-4) in place; and change the places of the two of your numbers. total number of coins received is 3, which means 1 number you submitted does not even exists in the Password.
Let's now try with a new guess:
Let's say now you submitted '1-2-4-5' and received 2 Gold and no Silver coins. This should be a good guess, as throwing out number '3' in the second guess, you now know that is actually existed in the Password - although you cannot be sure if it was in the right spot.
Say now you submit '1-2-6-3' based on the number of Gold and Silver coins you received in the previous guesses
And Voila!!
Max Score given in the table are the greatest score you can make in a given level.
Hence, score cannot be greater than the Max Score, yet can be smaller than the Max Score of the previous level, if not played well enough (i.e., having spent too many coins, making too many rounds).
| Level | Password Combinations | Coins in Bag | Relative Difficulty | Maximum Score | Badge | ||
|---|---|---|---|---|---|---|---|
| Digits | Complexity | Gold | Silver | ||||
| $howToPlayLevels["level"][i] | $howToPlayLevels["digit"][i] | $howToPlayLevels["complexity"][i] | $howToPlayLevels["gold"][i] | $howToPlayLevels["silver"][i] | $howToPlayLevels["difficulty"][i] | $howToPlayLevels["maxScore"][i] | $howToPlayLevels["badge"][i] |
There will be a cost of getting a greater amount of coins than the recommended amount. Score will be smaller in case of winning, as losing will be less likely compared to a game with the recommended amounts.
There will be a reward of getting a smaller amount of coins than the recommended amount. Score will be greater in case of winning, yet winning will be less likely compared to a game with the recommended amounts.
| Digits | Gold & Silver Amounts |
|---|---|
| $howToPlayRecommended["onlyNumbers"][i][0] | $howToPlayRecommended["onlyNumbers"][i][1] |
| Digits | Gold & Silver Amounts |
|---|---|
| $howToPlayRecommended["onlyLetters"][i][0] | $howToPlayRecommended["onlyLetters"][i][1] |
| Digits | Gold & Silver Amounts |
|---|---|
| $howToPlayRecommended["smallCapitalLetters"][i][0] | $howToPlayRecommended["smallCapitalLetters"][i][1] |
| Digits | Gold & Silver Amounts |
|---|---|
| $howToPlayRecommended["numbersSmallCapitalLetters"][i][0] | $howToPlayRecommended["numbersSmallCapitalLetters"][i][1] |


NC Central visits Akron
by EndPlayAKRON, Ohio - NC Central (1-1) vs. Akron (1-1)
James A. Rhodes Arena, Akron, Ohio; Friday, 7 p.m. EST
BOTTOM LINE: Akron plays host to NC Central in an early season matchup. NC Central beat South Carolina Upstate by nine at home on Monday, while Akron fell to West Virginia on the road on Friday, 94-84.
TEAM LEADERSHIP: Akron's Xeyrius Williams has averaged 18.5 points, 7.5 rebounds and two blocks while Channel Banks has put up 15.5 points. For the Eagles, Randy Miller, Jr. has averaged 20.5 points while Jibri Blount has put up 13 points, 12.5 rebounds and 2.5 steals.MIGHTY MILLER, JR.: Miller, has connected on 72.7 percent of the 11 3-pointers he's attempted. He's also made 100 percent of his foul shots this season.
DID YOU KNOW: Akron as a team has made 10.5 3-pointers per game this season, which is 10th-best among Division I teams.
___
For more AP college basketball coverage: https://apnews.com/Collegebasketball and http://twitter.com/AP_Top25
___
This was generated by Automated Insights, http://www.automatedinsights.com/ap, using data from STATS LLC, https://www.stats.com


We can define a baselayer and a list of overlays via the layers attribute, so the user will see a control to activate/deactivate the overlays on the top right corner, like in this example.
You can see a standalone example of this code here.


When contributing pageload monitoring data, our goal is not to track your browsing behavior and by default the names of the sites you visit are all anonymized. This means that we cannot know which sites you visit or if you and another Fathom user have visited the same sites. However, in order to be able to study the network performance across users and various networks, we DO NOT anonymize the identify of a small set of popular domains listed below.
You can remove (uncheck the box) any domain names that you feel unconfortable about sharing with us below. Don't forget to save changes. The changes will only affect future data collection.