강의영상

함수형모델

- Imports

import tensorflow as tf 
import tensorflow.experimental.numpy as tnp
import matplotlib.pyplot as plt 
tnp.experimental_enable_numpy_behavior()

- data

x= tnp.linspace(0,1,100).reshape(100,1)
y= x + tf.random.normal([100,1])*0.1
plt.plot(x,y,'.')
[<matplotlib.lines.Line2D at 0x7f3af44574f0>]

- input layer

x0= tf.keras.layers.Input(shape=(1,))

- 아키텍처

l1=tf.keras.layers.Dense(30)
a1=tf.keras.layers.Activation(tf.nn.relu)
x1=a1(l1(x0))
l2=tf.keras.layers.Dense(30)
a2=tf.keras.layers.Activation(tf.nn.relu)
x2=a2(l2(x1))
l3=tf.keras.layers.Dense(1)
x3=l3(x2) # output

- input, output 으로 모델(net)설정

net = tf.keras.Model(inputs=x0, outputs=x3)
net.summary()
Model: "model"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 input_2 (InputLayer)        [(None, 1)]               0         
                                                                 
 dense_1 (Dense)             (None, 30)                60        
                                                                 
 activation_1 (Activation)   (None, 30)                0         
                                                                 
 dense_2 (Dense)             (None, 30)                930       
                                                                 
 activation_2 (Activation)   (None, 30)                0         
                                                                 
 dense_3 (Dense)             (None, 1)                 31        
                                                                 
=================================================================
Total params: 1,021
Trainable params: 1,021
Non-trainable params: 0
_________________________________________________________________

- compile and fit

net.compile(loss='mse', optimizer='sgd')
net.fit(x,y,epochs=100)
Epoch 1/100
4/4 [==============================] - 0s 982us/step - loss: 0.0457
Epoch 2/100
4/4 [==============================] - 0s 1ms/step - loss: 0.0448
Epoch 3/100
4/4 [==============================] - 0s 921us/step - loss: 0.0440
Epoch 4/100
4/4 [==============================] - 0s 837us/step - loss: 0.0432
Epoch 5/100
4/4 [==============================] - 0s 778us/step - loss: 0.0423
Epoch 6/100
4/4 [==============================] - 0s 796us/step - loss: 0.0413
Epoch 7/100
4/4 [==============================] - 0s 785us/step - loss: 0.0405
Epoch 8/100
4/4 [==============================] - 0s 805us/step - loss: 0.0395
Epoch 9/100
4/4 [==============================] - 0s 815us/step - loss: 0.0388
Epoch 10/100
4/4 [==============================] - 0s 791us/step - loss: 0.0380
Epoch 11/100
4/4 [==============================] - 0s 864us/step - loss: 0.0372
Epoch 12/100
4/4 [==============================] - 0s 828us/step - loss: 0.0363
Epoch 13/100
4/4 [==============================] - 0s 825us/step - loss: 0.0354
Epoch 14/100
4/4 [==============================] - 0s 829us/step - loss: 0.0346
Epoch 15/100
4/4 [==============================] - 0s 793us/step - loss: 0.0339
Epoch 16/100
4/4 [==============================] - 0s 812us/step - loss: 0.0333
Epoch 17/100
4/4 [==============================] - 0s 817us/step - loss: 0.0326
Epoch 18/100
4/4 [==============================] - 0s 790us/step - loss: 0.0319
Epoch 19/100
4/4 [==============================] - 0s 814us/step - loss: 0.0313
Epoch 20/100
4/4 [==============================] - 0s 819us/step - loss: 0.0306
Epoch 21/100
4/4 [==============================] - 0s 802us/step - loss: 0.0300
Epoch 22/100
4/4 [==============================] - 0s 829us/step - loss: 0.0293
Epoch 23/100
4/4 [==============================] - 0s 841us/step - loss: 0.0289
Epoch 24/100
4/4 [==============================] - 0s 833us/step - loss: 0.0283
Epoch 25/100
4/4 [==============================] - 0s 826us/step - loss: 0.0276
Epoch 26/100
4/4 [==============================] - 0s 843us/step - loss: 0.0273
Epoch 27/100
4/4 [==============================] - 0s 819us/step - loss: 0.0269
Epoch 28/100
4/4 [==============================] - 0s 804us/step - loss: 0.0265
Epoch 29/100
4/4 [==============================] - 0s 826us/step - loss: 0.0260
Epoch 30/100
4/4 [==============================] - 0s 848us/step - loss: 0.0258
Epoch 31/100
4/4 [==============================] - 0s 858us/step - loss: 0.0254
Epoch 32/100
4/4 [==============================] - 0s 825us/step - loss: 0.0251
Epoch 33/100
4/4 [==============================] - 0s 856us/step - loss: 0.0248
Epoch 34/100
4/4 [==============================] - 0s 842us/step - loss: 0.0246
Epoch 35/100
4/4 [==============================] - 0s 844us/step - loss: 0.0242
Epoch 36/100
4/4 [==============================] - 0s 856us/step - loss: 0.0237
Epoch 37/100
4/4 [==============================] - 0s 903us/step - loss: 0.0235
Epoch 38/100
4/4 [==============================] - 0s 864us/step - loss: 0.0232
Epoch 39/100
4/4 [==============================] - 0s 867us/step - loss: 0.0230
Epoch 40/100
4/4 [==============================] - 0s 837us/step - loss: 0.0227
Epoch 41/100
4/4 [==============================] - 0s 907us/step - loss: 0.0225
Epoch 42/100
4/4 [==============================] - 0s 914us/step - loss: 0.0222
Epoch 43/100
4/4 [==============================] - 0s 896us/step - loss: 0.0219
Epoch 44/100
4/4 [==============================] - 0s 830us/step - loss: 0.0217
Epoch 45/100
4/4 [==============================] - 0s 859us/step - loss: 0.0213
Epoch 46/100
4/4 [==============================] - 0s 835us/step - loss: 0.0211
Epoch 47/100
4/4 [==============================] - 0s 839us/step - loss: 0.0209
Epoch 48/100
4/4 [==============================] - 0s 823us/step - loss: 0.0206
Epoch 49/100
4/4 [==============================] - 0s 824us/step - loss: 0.0204
Epoch 50/100
4/4 [==============================] - 0s 894us/step - loss: 0.0201
Epoch 51/100
4/4 [==============================] - 0s 890us/step - loss: 0.0199
Epoch 52/100
4/4 [==============================] - 0s 875us/step - loss: 0.0196
Epoch 53/100
4/4 [==============================] - 0s 836us/step - loss: 0.0194
Epoch 54/100
4/4 [==============================] - 0s 838us/step - loss: 0.0192
Epoch 55/100
4/4 [==============================] - 0s 849us/step - loss: 0.0191
Epoch 56/100
4/4 [==============================] - 0s 895us/step - loss: 0.0189
Epoch 57/100
4/4 [==============================] - 0s 947us/step - loss: 0.0187
Epoch 58/100
4/4 [==============================] - 0s 917us/step - loss: 0.0185
Epoch 59/100
4/4 [==============================] - 0s 883us/step - loss: 0.0183
Epoch 60/100
4/4 [==============================] - 0s 849us/step - loss: 0.0182
Epoch 61/100
4/4 [==============================] - 0s 838us/step - loss: 0.0180
Epoch 62/100
4/4 [==============================] - 0s 843us/step - loss: 0.0178
Epoch 63/100
4/4 [==============================] - 0s 837us/step - loss: 0.0176
Epoch 64/100
4/4 [==============================] - 0s 850us/step - loss: 0.0175
Epoch 65/100
4/4 [==============================] - 0s 871us/step - loss: 0.0173
Epoch 66/100
4/4 [==============================] - 0s 862us/step - loss: 0.0171
Epoch 67/100
4/4 [==============================] - 0s 828us/step - loss: 0.0169
Epoch 68/100
4/4 [==============================] - 0s 834us/step - loss: 0.0167
Epoch 69/100
4/4 [==============================] - 0s 842us/step - loss: 0.0165
Epoch 70/100
4/4 [==============================] - 0s 862us/step - loss: 0.0164
Epoch 71/100
4/4 [==============================] - 0s 925us/step - loss: 0.0162
Epoch 72/100
4/4 [==============================] - 0s 942us/step - loss: 0.0161
Epoch 73/100
4/4 [==============================] - 0s 960us/step - loss: 0.0158
Epoch 74/100
4/4 [==============================] - 0s 883us/step - loss: 0.0157
Epoch 75/100
4/4 [==============================] - 0s 890us/step - loss: 0.0155
Epoch 76/100
4/4 [==============================] - 0s 886us/step - loss: 0.0154
Epoch 77/100
4/4 [==============================] - 0s 867us/step - loss: 0.0152
Epoch 78/100
4/4 [==============================] - 0s 864us/step - loss: 0.0151
Epoch 79/100
4/4 [==============================] - 0s 951us/step - loss: 0.0150
Epoch 80/100
4/4 [==============================] - 0s 894us/step - loss: 0.0149
Epoch 81/100
4/4 [==============================] - 0s 901us/step - loss: 0.0148
Epoch 82/100
4/4 [==============================] - 0s 905us/step - loss: 0.0146
Epoch 83/100
4/4 [==============================] - 0s 893us/step - loss: 0.0145
Epoch 84/100
4/4 [==============================] - 0s 911us/step - loss: 0.0144
Epoch 85/100
4/4 [==============================] - 0s 890us/step - loss: 0.0143
Epoch 86/100
4/4 [==============================] - 0s 879us/step - loss: 0.0142
Epoch 87/100
4/4 [==============================] - 0s 867us/step - loss: 0.0141
Epoch 88/100
4/4 [==============================] - 0s 850us/step - loss: 0.0139
Epoch 89/100
4/4 [==============================] - 0s 827us/step - loss: 0.0138
Epoch 90/100
4/4 [==============================] - 0s 822us/step - loss: 0.0138
Epoch 91/100
4/4 [==============================] - 0s 869us/step - loss: 0.0136
Epoch 92/100
4/4 [==============================] - 0s 855us/step - loss: 0.0136
Epoch 93/100
4/4 [==============================] - 0s 867us/step - loss: 0.0135
Epoch 94/100
4/4 [==============================] - 0s 857us/step - loss: 0.0134
Epoch 95/100
4/4 [==============================] - 0s 849us/step - loss: 0.0134
Epoch 96/100
4/4 [==============================] - 0s 834us/step - loss: 0.0133
Epoch 97/100
4/4 [==============================] - 0s 822us/step - loss: 0.0132
Epoch 98/100
4/4 [==============================] - 0s 821us/step - loss: 0.0130
Epoch 99/100
4/4 [==============================] - 0s 831us/step - loss: 0.0129
Epoch 100/100
4/4 [==============================] - 0s 820us/step - loss: 0.0128
<keras.callbacks.History at 0x7f3ab0776470>
plt.plot(x,y,'.')
plt.plot(x,net(x),'--')
[<matplotlib.lines.Line2D at 0x7f3ab0605bd0>]