首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Tensorflow查找隐藏公式(处理数值I/O)

使用Tensorflow查找隐藏公式(处理数值I/O)
EN

Stack Overflow用户
提问于 2018-05-16 09:34:24
回答 1查看 37关注 0票数 0

我有一个标准的CSV文件,其中有一堆行,所有行都有60列随机数(浮点数)。在61-63列,我有一些数字(同样是浮点数),它们是前60列的函数。

对于第一个“输出”列,我计算了前20列的总和,再乘以后面40列的总和,然后对接下来的两个输出列进行其他任意变化。我希望我的机器学习算法能够拾取这种公式化关系,并对三个输出值进行预测。

下面是我读取数据的方式

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import pandas as pd
from sklearn.utils import shuffle
from sklearn.model_selection import train_test_split

def read_data():
    rd = pd.read_csv(file_path)
    x = rd[rd.columns[0:60]].values
    y = rd[rd.columns[60:63]].values
    X = x.astype(float) #just making sure we have the right dtype 
    Y = y.astype(float) 
    print(X.shape)
    print(Y.shape)
    return (X, Y)

X, Y = read_data()

然后,我将数据混洗并分成训练集和测试集

代码语言:javascript
运行
复制
X, Y = shuffle(X, Y, random_state=1)
train_x, test_x, train_y, test_y = train_test_split(X, Y, test_size=0.25, random_state=117)

接下来,我定义了我的模型,权重和偏差

代码语言:javascript
运行
复制
n_dim = X.shape[1]
print("n_dim", n_dim)
n_output = Y.shape[1]
print("n_output", n_output)    
n_hidden_1 = 100
n_hidden_2 = 75
n_hidden_3 = 50
n_hidden_4 = 50
x = tf.placeholder(tf.float32, [None, n_dim])
W = tf.Variable(tf.zeros([n_dim, n_output]))
b = tf.Variable(tf.zeros([n_output]))
y = tf.placeholder(tf.float32, [None, n_output])

def layered_model(x, weights, biases):

    # 4 hidden layers with sigmoid and relu
    layer_1 = tf.add(tf.matmul(x, weights['w1']), biases['b1'])
    layer_1 = tf.nn.sigmoid(layer_1)

    layer_2 = tf.add(tf.matmul(layer_1, weights['w2']), biases['b2'])
    layer_2 = tf.nn.sigmoid(layer_2)

    layer_3 = tf.add(tf.matmul(layer_2, weights['w3']), biases['b3'])
    layer_3 = tf.nn.sigmoid(layer_3)

    layer_4 = tf.add(tf.matmul(layer_3, weights['w4']), biases['b4'])
    layer_4 = tf.nn.relu(layer_4)

    out_layer = tf.matmul(layer_4, weights['out']) + biases['out']
    return out_layer

weights = {
    'w1': tf.Variable(tf.truncated_normal([n_dim, n_hidden_1])),
    'w2': tf.Variable(tf.truncated_normal([n_hidden_1, n_hidden_2])),
    'w3': tf.Variable(tf.truncated_normal([n_hidden_2, n_hidden_3])),
    'w4': tf.Variable(tf.truncated_normal([n_hidden_3, n_hidden_4])),
    'out': tf.Variable(tf.truncated_normal([n_hidden_4, n_output]))
}
biases = {
    'b1': tf.Variable(tf.truncated_normal([n_hidden_1])),
    'b2': tf.Variable(tf.truncated_normal([n_hidden_2])),
    'b3': tf.Variable(tf.truncated_normal([n_hidden_3])),
    'b4': tf.Variable(tf.truncated_normal([n_hidden_4])),
    'out': tf.Variable(tf.truncated_normal([n_output]))
}

如何将我的数据输入到一个成本函数中,然后将其用于我的纪元?我能找到的所有教程都是关于带标签的数据集的,把东西放到“桶”里。而这是纯粹的数字输入/输出。

我能找到的唯一信息是,数值成本函数通常使用平方误差方法,feed_dict将是必要的:

代码语言:javascript
运行
复制
cost_function = tf.reduce_mean(tf.square(prediction - actual))
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50361246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档