python - 张量流中的回归
问题描述
只是想知道任何人都可以让我了解 tensorflow 中的回归代码。
我有下面的代码
import tensorflow as tf
import numpy
import matplotlib.pyplot as plt
rng = numpy.random
# Parameters
learning_rate = 0.01
training_epochs = 1000
display_step = 50
# Training Data
Y1, T1, X1 = numpy.genfromtxt('data7.csv', delimiter=',', usecols=(2,3,4), unpack=True, dtype=None)
train_X = X1
train_T = T1
train_Y = Y1
n_samples = train_X.shape[0]
# tf Graph Input
X = tf.placeholder("float")
T = tf.placeholder("float")
Y = tf.placeholder("float")
# Set model weights
a1 = tf.Variable(rng.randn(), name="weight1")
a2 = tf.Variable(rng.randn(), name="weight2")
a3 = tf.Variable(rng.randn(), name="weight3")
a4 = tf.Variable(rng.randn(), name="weight4")
# Construct a linear model
# pred = tf.add(tf.multiply(X, W), b)
hyp1 = tf.multiply(X, tf.add(a1,tf.add(tf.multiply(a2,X),tf.multiply(a3,tf.log(X)))))
hyp2 = tf.add(1.0, tf.multiply(a4, tf.add(T, -25.0)))
pow_ac_pred = tf.multiply(hyp1, hyp2)
# Mean squared error
cost = tf.reduce_sum(tf.pow(pow_ac_pred-Y, 2))/(2*n_samples)
# Gradient descent
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
# Initialize the variables (i.e. assign their default value)
init = tf.global_variables_initializer()
# Start training
with tf.Session() as sess:
# Run the initializer
sess.run(init)
# Fit all training data
for epoch in range(training_epochs):
for (x, y, t) in zip(train_X, train_Y, train_T):
sess.run(optimizer, feed_dict={X: x, Y: y, T:t})
# Display logs per epoch step
if (epoch+1) % display_step == 0:
c = sess.run(cost, feed_dict={X: train_X, Y:train_Y, T:train_T})
print("Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(c), \
"a1=", sess.run(a1), "a2=", sess.run(a2), "a3", sess.run(a3), "a4", sess.run(a4))
print("Optimization Finished!")
training_cost = sess.run(cost, feed_dict={X: train_X, Y: train_Y, T:train_T})
print("Training cost=", training_cost, "a1=", sess.run(a1), "a2=", sess.run(a2), \
"a3", sess.run(a3), "a4", sess.run(a4), '\n')
我正在提供 X、Y 和 T 的数据。但是,每个时期的日志都给了我“nan”,这对我来说没有多大意义。该模型是通过使用太阳能模块的辐照和温度来预测太阳能电池板的交流功率。这些变量之间的关系在 此处输入图像描述 P_ac = G*(a1 + a2*G + a3 *log(G)) * (1 + a4*(Tm - 25)) 其中 p_ac 是功率输出,G 是辐照度和Tm 是模块温度。如果我完全错误地解决问题。谁能给我一个正确的方法来解决这个问题?谢谢
解决方案
推荐阅读
- postgresql - Postgresql jsonb连续选择数组的不同元素(具有相同的键)
- javascript - 优化 Angular 代码以获得更好的可扩展性和良好的架构
- elasticsearch - ElasticSearch:主机响应单个网站的 403 错误
- java - 是否可以使用 Spring 或 boot 验证 URI 路径参数是否为空?
- python - 我的查询是持续很长时间还是数据库连接
- amazon-web-services - 如何使用常规公共 IP 地址而不是 EIP 指定网络接口?
- wpf - WPF Prism 中的登录窗口
- android - Azure DevOps Android 在构建期间增加版本控制
- python - 依赖解析(括号格式) - 西班牙语 - 使用 nltk 和 stanford-nlp 标签
- angularjs - AngularJS 从 1.4 升级到 1.5 路由未加载