我正在嘗試使用 tensorflow 創建這個自定義 ANN。這是玩具網路和代碼的影像。

import tensorflow as tf
import numpy as np
in = np.array([1, 2, 3, 4], , dtype="float32")
y_true = np.array([10, 11], , dtype="float32")
# w is vector of weights
# y_pred = np.array([in[0]*w[0] in[1]*w[0]], [in[2]*w[1] in[3]*w[1]] )
# y_pred1 = 1 / (1 tf.math.exp(-y_pred)) # sigmoid activation function
def loss_fun(y_true, y_pred1):
loss1 = tf.reduce_sum(tf.pow(y_pred1 - y_true, 2))
# model.compile(loss=loss_fun, optimizer='adam', metrics=['accuracy'])
這個網路的輸出變到另一個神經網路的正確的,我知道的東西,但不知道我怎么可以創建連接,更新w,y_pred并編譯模型。有什么幫助嗎?
uj5u.com熱心網友回復:
像這樣的事情應該作業
import tensorflow as tf
import numpy as np
def y_pred(x, w):
return [x[0]*w[0] x[1]*w[0], x[2]*w[1] x[3]*w[1]]
def loss_fun(y_true, y_pred):
return tf.reduce_sum(tf.pow(y_pred - y_true, 2))
x = np.array([1, 2, 3, 4], dtype="float32")
y_true = np.array([10, 11], dtype="float32")
w = tf.Variable(initial_value=np.random.normal(size=(2)), name='weights', dtype=tf.float32)
xt = tf.convert_to_tensor(x)
yt = tf.convert_to_tensor(y_true)
sgd_opt = tf.optimizers.SGD()
training_steps = 100
display_steps = 10
for step in range(training_steps):
with tf.GradientTape() as tape:
tape.watch(w)
yp = y_pred(xt, w)
loss = loss_fun(yt, yp)
dl_dw = tape.gradient(loss, w)
sgd_opt.apply_gradients(zip([dl_dw], [w]))
if step % display_steps == 0:
print(loss, w)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/311551.html
上一篇:將影像資料集加載到pytorch中的資料加載器后,如何將其下載到我的電腦?
下一篇:線性回歸圖中的資料點
