2

This is my test code. But it could not run. Terminal always gave me this error:

Traceback (most recent call last):
File "desktop/test.py", line 28, in loss =tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1])).
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py", line 898, in binary_op_wrapper y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y")
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 932, in convert_to_tensor as_ref=False)
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1022, in internal_convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 233, in _constant_tensor_conversion_function return constant(v, dtype=dtype, name=name)
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 212, in constant value, dtype=dtype, shape=shape, verify_shape=verify_shape))
File "/Users/sumeixu/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/tensor_util.py", line 401, in make_tensor_proto raise ValueError("None values not supported.").

ValueError: None values not supported.

Help please. Blew is my code. Thank you so much!

import tensorflow as tf 
import numpy as np 
import matplotlib.pyplot as plt

def add_layer(inputs,in_size,out_size,activation_function=None):
    Weights=tf.Variable(tf.random_normal([in_size,out_size]))
    biases=tf.Variable(tf.zeros([1,out_size])+0.1)
    Wx_Plus_b = tf.matmul(inputs,Weights)+biases

    if activation_function is None:
        outputs=Wx_Plus_b
    else:
            outputs=activation_function(Wx_Plus_b)
            return outputs

x_data = np.linspace(-1,1,300)[:,np.newaxis]
noise=np.random.normal(0,0.05,x_data.shape)
y_data=np.square(x_data)-0.5+noise

xs=tf.placeholder(tf.float32,[None,1])
ys=tf.placeholder(tf.float32,[None,1])

l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)

prediction=add_layer(l1,10,1,activation_function=None)

loss =tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))

train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

for i in range(1000):
    sess.run(train_step,feed_dict={xs:x_data,ys:y_data})

    if i%50==0:
        print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))

1 Answer 1

3

So I ran your code and It works just fine, after I fixed the indent in your first function. If I just copy paste it as you wrote it, I also get the None error (since you return nothing from the function). So just solve the indent and it should work!

To get the loss you can just fetch the value as follows:

loss_list = []
if i%50==0:
    my_loss = sess.run(loss,feed_dict={xs:x_data,ys:y_data})
    loss_list.append(my_loss)
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks for letting me know this. I fixed the indent and no error came out. I actually wanted to show error decrease while I increase i from 1 to 1000. for i in range(1000): sess.run(train_step,feed_dict={xs:x_data,ys:y_data}) if i%50==0: print(sess.run(loss,feed_dict={xs:x_data,ys:y_data})). Any ideas on how to fix that?
Does that work for you? It does not show anything in my terminal :/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.