Как я могу использовать 3-мерные данные для обучения - PullRequest
0 голосов
/ 04 июня 2019

Я могу найти и изучить множество примеров для обучения по тензорному потоку, используя 1 или 2-мерный ввод и вывод. Но я понятия не имею, как обращаться с 3-мерными наборами данных ввода и вывода, и не могу найти подходящий пример или объяснение для этого.

Я не могу справиться с формой заполнителей, весом и уклоном. Все мои попытки получили ошибки, касающиеся несоответствия ранга или ошибки размера при выполнении 'matmul' в tenorflow.

import tensorflow as tf 
import numpy as np
from tqdm import tqdm_notebook
import matplotlib.pyplot as plt

# Input data: 2 rows by 3 columns by 10 depths
# Output data: 1 row by 2 columns by 10 depths

Input = 
[[[ 1.104,  0.359, -0.652], [1.421, 0.309, 1.612]],
 [[1.421, 0.309, 1.612], [ 1.572,  0.672, -0.194]],
 [[ 1.572,  0.672, -0.194], [ 1.651,  0.516, -0.935]],
 [[ 1.651,  0.516, -0.935], [1.171, 0.368, 0.246]],
 [[1.171, 0.368, 0.246], [ 1.301,  0.458, -0.29 ]],
 [[ 1.301,  0.458, -0.29 ], [ 1.256,  0.109, -0.96 ]],
 [[ 1.256,  0.109, -0.96 ], [ 1.632,  0.086, -0.129]],
 [[ 1.632,  0.086, -0.129], [1.761, 0.22 , 1.34 ]],
 [[1.761, 0.22 , 1.34 ], [ 1.464,  0.64 , -0.593]],
 [[ 1.464,  0.64 , -0.593], [1.374, 0.501, 0.463]]]

Output = 
[[[-0.652,  1.866]],
 [[1.612, 2.003]],
 [[-0.194,  2.179]],
 [[-0.935,  2.321]],
 [[0.246, 2.298]],
 [[-0.29 ,  2.168]],
 [[-0.96,  2.08]],
 [[-0.129,  2.503]],
 [[1.34 , 2.531]],
 [[-0.593,  3.017]]]


x_data = Input
y_data = Output

X = tf.placeholder(tf.float32, shape=([???]), name='x-input')
Y = tf.placeholder(tf.float32, shape=([???]), name='y-input')

with tf.name_scope("layer1") as scope:
    W1 = tf.Variable(tf.random_normal([???]), name='weight1')
    b1 = tf.Variable(tf.random_normal([???]), name='bias1')

    hypothesis = tf.nn.relu(tf.matmul(X, W1) + b1)

cost = tf.reduce_mean(tf.squared_difference(hypothesis, Y))
train = tf.train.GradientDescentOptimizer(learning_rate=0.001).minimize(cost)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for step in tqdm_notebook(range(1000)):
        sess.run(train, feed_dict={X: x_data, Y: y_data})

        cost_history.append(sess.run(cost, feed_dict={X: x_data, Y: y_data}))

plt.figure(figsize=[12,6])
plt.plot(cost_history)

Пожалуйста, дайте мне несколько советов по этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...