In this exercise you'll try to build a neural network that predicts the price of a house according to a simple formula.

So, imagine if house pricing was as easy as a house costs 50k + 50k per bedroom, so that a 1 bedroom house costs 100k, a 2 bedroom house costs 150k etc.

How would you create a neural network that learns this relationship so that it would predict a 7 bedroom house as costing close to 400k etc.

Hint: Your network might work better if you scale the house price down. You don't have to give the answer 400...it might be better to create something that predicts the number 4, and then your answer is in the 'hundreds of thousands' etc.

In [1]:
import tensorflow as tf
import numpy as np
from tensorflow import keras
In [2]:
# GRADED FUNCTION: house_model
def house_model(y_new):
    xs = np.array([0, 1, 2, 3, 4, 5, 6, 8, 9, 10])
    ys = np.array([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.5, 5.0, 5.5])
    model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
    model.compile(loss='mean_squared_error', optimizer='sgd')
    model.fit(xs, ys, epochs=100)
    return model.predict(y_new)[0]
In [3]:
prediction = house_model([7.0])
print(prediction)
WARNING: Logging before flag parsing goes to stderr.
W1217 06:24:40.300863 139762803140416 deprecation.py:506] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
Epoch 1/100
10/10 [==============================] - 2s 227ms/sample - loss: 73.1234
Epoch 2/100
10/10 [==============================] - 0s 175us/sample - loss: 7.2407
Epoch 3/100
10/10 [==============================] - 0s 189us/sample - loss: 0.7381
Epoch 4/100
10/10 [==============================] - 0s 208us/sample - loss: 0.0960
Epoch 5/100
10/10 [==============================] - 0s 195us/sample - loss: 0.0324
Epoch 6/100
10/10 [==============================] - 0s 169us/sample - loss: 0.0258
Epoch 7/100
10/10 [==============================] - 0s 153us/sample - loss: 0.0249
Epoch 8/100
10/10 [==============================] - 0s 7ms/sample - loss: 0.0245
Epoch 9/100
10/10 [==============================] - 0s 278us/sample - loss: 0.0242
Epoch 10/100
10/10 [==============================] - 0s 149us/sample - loss: 0.0239
Epoch 11/100
10/10 [==============================] - 0s 138us/sample - loss: 0.0236
Epoch 12/100
10/10 [==============================] - 0s 137us/sample - loss: 0.0233
Epoch 13/100
10/10 [==============================] - 0s 134us/sample - loss: 0.0231
Epoch 14/100
10/10 [==============================] - 0s 127us/sample - loss: 0.0228
Epoch 15/100
10/10 [==============================] - 0s 203us/sample - loss: 0.0225
Epoch 16/100
10/10 [==============================] - 0s 164us/sample - loss: 0.0222
Epoch 17/100
10/10 [==============================] - 0s 216us/sample - loss: 0.0219
Epoch 18/100
10/10 [==============================] - 0s 177us/sample - loss: 0.0217
Epoch 19/100
10/10 [==============================] - 0s 151us/sample - loss: 0.0214
Epoch 20/100
10/10 [==============================] - 0s 7ms/sample - loss: 0.0211
Epoch 21/100
10/10 [==============================] - 0s 135us/sample - loss: 0.0209
Epoch 22/100
10/10 [==============================] - 0s 146us/sample - loss: 0.0206
Epoch 23/100
10/10 [==============================] - 0s 178us/sample - loss: 0.0204
Epoch 24/100
10/10 [==============================] - 0s 190us/sample - loss: 0.0201
Epoch 25/100
10/10 [==============================] - 0s 180us/sample - loss: 0.0199
Epoch 26/100
10/10 [==============================] - 0s 209us/sample - loss: 0.0196
Epoch 27/100
10/10 [==============================] - 0s 153us/sample - loss: 0.0194
Epoch 28/100
10/10 [==============================] - 0s 126us/sample - loss: 0.0192
Epoch 29/100
10/10 [==============================] - 0s 122us/sample - loss: 0.0189
Epoch 30/100
10/10 [==============================] - 0s 121us/sample - loss: 0.0187
Epoch 31/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0185
Epoch 32/100
10/10 [==============================] - 0s 184us/sample - loss: 0.0182
Epoch 33/100
10/10 [==============================] - 0s 180us/sample - loss: 0.0180
Epoch 34/100
10/10 [==============================] - 0s 146us/sample - loss: 0.0178
Epoch 35/100
10/10 [==============================] - 0s 146us/sample - loss: 0.0176
Epoch 36/100
10/10 [==============================] - 0s 136us/sample - loss: 0.0174
Epoch 37/100
10/10 [==============================] - 0s 125us/sample - loss: 0.0171
Epoch 38/100
10/10 [==============================] - 0s 146us/sample - loss: 0.0169
Epoch 39/100
10/10 [==============================] - 0s 172us/sample - loss: 0.0167
Epoch 40/100
10/10 [==============================] - 0s 168us/sample - loss: 0.0165
Epoch 41/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0163
Epoch 42/100
10/10 [==============================] - 0s 149us/sample - loss: 0.0161
Epoch 43/100
10/10 [==============================] - 0s 123us/sample - loss: 0.0159
Epoch 44/100
10/10 [==============================] - 0s 124us/sample - loss: 0.0157
Epoch 45/100
10/10 [==============================] - 0s 175us/sample - loss: 0.0155
Epoch 46/100
10/10 [==============================] - 0s 200us/sample - loss: 0.0153
Epoch 47/100
10/10 [==============================] - 0s 187us/sample - loss: 0.0151
Epoch 48/100
10/10 [==============================] - 0s 211us/sample - loss: 0.0150
Epoch 49/100
10/10 [==============================] - 0s 141us/sample - loss: 0.0148
Epoch 50/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0146
Epoch 51/100
10/10 [==============================] - 0s 199us/sample - loss: 0.0144
Epoch 52/100
10/10 [==============================] - 0s 222us/sample - loss: 0.0142
Epoch 53/100
10/10 [==============================] - 0s 168us/sample - loss: 0.0141
Epoch 54/100
10/10 [==============================] - 0s 120us/sample - loss: 0.0139
Epoch 55/100
10/10 [==============================] - 0s 117us/sample - loss: 0.0137
Epoch 56/100
10/10 [==============================] - 0s 139us/sample - loss: 0.0136
Epoch 57/100
10/10 [==============================] - 0s 135us/sample - loss: 0.0134
Epoch 58/100
10/10 [==============================] - 0s 170us/sample - loss: 0.0132
Epoch 59/100
10/10 [==============================] - 0s 162us/sample - loss: 0.0131
Epoch 60/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0129
Epoch 61/100
10/10 [==============================] - 0s 170us/sample - loss: 0.0127
Epoch 62/100
10/10 [==============================] - 0s 136us/sample - loss: 0.0126
Epoch 63/100
10/10 [==============================] - 0s 130us/sample - loss: 0.0124
Epoch 64/100
10/10 [==============================] - 0s 135us/sample - loss: 0.0123
Epoch 65/100
10/10 [==============================] - 0s 206us/sample - loss: 0.0121
Epoch 66/100
10/10 [==============================] - 0s 194us/sample - loss: 0.0120
Epoch 67/100
10/10 [==============================] - 0s 217us/sample - loss: 0.0118
Epoch 68/100
10/10 [==============================] - 0s 186us/sample - loss: 0.0117
Epoch 69/100
10/10 [==============================] - 0s 142us/sample - loss: 0.0115
Epoch 70/100
10/10 [==============================] - 0s 190us/sample - loss: 0.0114
Epoch 71/100
10/10 [==============================] - 0s 202us/sample - loss: 0.0113
Epoch 72/100
10/10 [==============================] - 0s 240us/sample - loss: 0.0111
Epoch 73/100
10/10 [==============================] - 0s 159us/sample - loss: 0.0110
Epoch 74/100
10/10 [==============================] - 0s 135us/sample - loss: 0.0108
Epoch 75/100
10/10 [==============================] - 0s 122us/sample - loss: 0.0107
Epoch 76/100
10/10 [==============================] - 0s 117us/sample - loss: 0.0106
Epoch 77/100
10/10 [==============================] - 0s 116us/sample - loss: 0.0105
Epoch 78/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0103
Epoch 79/100
10/10 [==============================] - 0s 156us/sample - loss: 0.0102
Epoch 80/100
10/10 [==============================] - 0s 129us/sample - loss: 0.0101
Epoch 81/100
10/10 [==============================] - 0s 141us/sample - loss: 0.0100
Epoch 82/100
10/10 [==============================] - 0s 130us/sample - loss: 0.0098
Epoch 83/100
10/10 [==============================] - 0s 187us/sample - loss: 0.0097
Epoch 84/100
10/10 [==============================] - 0s 171us/sample - loss: 0.0096
Epoch 85/100
10/10 [==============================] - 0s 188us/sample - loss: 0.0095
Epoch 86/100
10/10 [==============================] - 0s 186us/sample - loss: 0.0094
Epoch 87/100
10/10 [==============================] - 0s 137us/sample - loss: 0.0092
Epoch 88/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0091
Epoch 89/100
10/10 [==============================] - 0s 181us/sample - loss: 0.0090
Epoch 90/100
10/10 [==============================] - 0s 199us/sample - loss: 0.0089
Epoch 91/100
10/10 [==============================] - 0s 192us/sample - loss: 0.0088
Epoch 92/100
10/10 [==============================] - 0s 182us/sample - loss: 0.0087
Epoch 93/100
10/10 [==============================] - 0s 154us/sample - loss: 0.0086
Epoch 94/100
10/10 [==============================] - 0s 128us/sample - loss: 0.0085
Epoch 95/100
10/10 [==============================] - 0s 129us/sample - loss: 0.0084
Epoch 96/100
10/10 [==============================] - 0s 118us/sample - loss: 0.0083
Epoch 97/100
10/10 [==============================] - 0s 8ms/sample - loss: 0.0082
Epoch 98/100
10/10 [==============================] - 0s 192us/sample - loss: 0.0081
Epoch 99/100
10/10 [==============================] - 0s 141us/sample - loss: 0.0080
Epoch 100/100
10/10 [==============================] - 0s 142us/sample - loss: 0.0079
[4.0014544]
In [4]:
# Now click the 'Submit Assignment' button above.
# Once that is complete, please run the following two cells to save your work and close the notebook
In [ ]:
%%javascript
<!-- Save the notebook -->
IPython.notebook.save_checkpoint();
In [ ]:
%%javascript
IPython.notebook.session.delete();
window.onbeforeunload = null
setTimeout(function() { window.close(); }, 1000);