मैं टेंसर के लिए नया हूँ और इसे समझने की कोशिश कर रहा हूँ। मैं एक परत मॉडल बनाने में कामयाब रहा। लेकिन मैं अब 2 और जोड़ना चाहूंगा। मैं अपनी ट्रेन के कार्य को कैसे काम कर सकता हूं? मैं इसे एक्स और वाई के सैकड़ों मूल्यों के साथ प्रशिक्षित करना चाहता हूं। मैंने सभी मूल्यों को लागू किया जो मुझे चाहिए: प्रत्येक परत का वजन और पूर्वाग्रह, लेकिन मुझे समझ में नहीं आता कि मैं उन्हें अपने ट्रेन फ़ंक्शन में कैसे उपयोग कर सकता हूं। और जब इसे प्रशिक्षित किया जाएगा, तो मैं इसका उपयोग कैसे कर सकता हूं। जैसे मैं एक कोड के अंतिम भाग में करता हूँ।

import numpy as np

print("TensorFlow version: {}".format(tf.__version__))
print("Eager execution: {}".format(tf.executing_eagerly()))

x = np.array([
    [10, 10, 30, 20],
])

y = np.array([[10, 1, 1, 1]])


class Model(object):
    def __init__(self, x, y):
        # get random values.
        self.W = tf.Variable(tf.random.normal((len(x), len(x[0]))))
        self.b = tf.Variable(tf.random.normal((len(y),)))
        self.W1 = tf.Variable(tf.random.normal((len(x), len(x[0]))))
        self.b1 = tf.Variable(tf.random.normal((len(y),)))
        self.W2 = tf.Variable(tf.random.normal((len(x), len(x[0]))))
        self.b2 = tf.Variable(tf.random.normal((len(y),)))

    def __call__(self, x):
        out1 = tf.multiply(x, self.W) + self.b
        out2 = tf.multiply(out1, self.W1) + self.b1
        last_layer = tf.multiply(out2, self.W2) + self.b2
        # Input_Leyer = self.W * x + self.b
        return last_layer


def loss(predicted_y, desired_y):
    return tf.reduce_sum(tf.square(predicted_y - desired_y))


optimizer = tf.optimizers.Adam(0.1)
    
def train(model, inputs, outputs):
    with tf.GradientTape() as t:
        current_loss = loss(model(inputs), outputs)
    grads = t.gradient(current_loss, [model.W, model.b])
    optimizer.apply_gradients(zip(grads, [model.W, model.b]))

    print(current_loss)


model = Model(x, y)

for i in range(10000):
    train(model, x, y)

for i in range(3): 
    InputX = np.array([
        [input(), input(), input(), input()],
    ])
    returning = tf.math.multiply(
        InputX, model.W, name=None
    )
    print("I think that output can be:", returning)
0
Vlady Patrick 6 नवम्बर 2020, 10:41

1 उत्तर

सबसे बढ़िया उत्तर

सूची में बस नए चर जोड़ें:

grads = t.gradient(current_loss, [model.W, model.b, model.W1, model.b1, model.W2, model.b2])
optimizer.apply_gradients(zip(grads, [model.W, model.b, model.W1, model.b1, model.W2, model.b2]))
1
Andrey 6 नवम्बर 2020, 07:50