Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于python3.6和tensorflow1.2的问题_Tensorflow - Fatal编程技术网

关于python3.6和tensorflow1.2的问题

关于python3.6和tensorflow1.2的问题,tensorflow,Tensorflow,当我运行一个程序时,一个错误形状是10?必须具有至少3级的排名。 下面是我的代码,可能是输出的错误,=tf.nn.dynamic\u rnncell,x,dtype=tf.float32 但是我不能修改。 你能帮我吗 Traceback (most recent call last): File "C:/Users/yyb/PycharmProjects/untitled1/myLSTM.py", line 49, in <module> regressor.fit(tr

当我运行一个程序时,一个错误形状是10?必须具有至少3级的排名。 下面是我的代码,可能是输出的错误,=tf.nn.dynamic\u rnncell,x,dtype=tf.float32 但是我不能修改。 你能帮我吗

Traceback (most recent call last):
  File "C:/Users/yyb/PycharmProjects/untitled1/myLSTM.py", line 49, in <module>
    regressor.fit(train_X,train_y,batch_size=BATCH_SIZE,steps=TRAINING_STEPS)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\util\deprecation.py", line 289, in new_func
    return func(*args, **kwargs)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 439, in fit
    SKCompat(self).fit(x, y, batch_size, steps, max_steps, monitors)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 1350, in fit
    monitors=all_monitors)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\util\deprecation.py", line 289, in new_func
    return func(*args, **kwargs)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 455, in fit
    loss = self._train_model(input_fn=input_fn, hooks=hooks)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 955, in _train_model
    model_fn_ops = self._get_train_ops(features, labels)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 1162, in _get_train_ops
    return self._call_model_fn(features, labels, model_fn_lib.ModeKeys.TRAIN)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\contrib\learn\python\learn\estimators\estimator.py", line 1133, in _call_model_fn
    model_fn_results = self._model_fn(features, labels, **kwargs)
  File "C:/Users/yyb/PycharmProjects/untitled1/myLSTM.py", line 35, in lstm_model
    output,_=tf.nn.dynamic_rnn(cell,x_,dtype=tf.float32)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\rnn.py", line 574, in dynamic_rnn
    dtype=dtype)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\rnn.py", line 637, in _dynamic_rnn_loop
    for input_ in flat_input)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\rnn.py", line 637, in <genexpr>
    for input_ in flat_input)
  File "C:\Users\yyb\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 649, in with_rank_at_least
    raise ValueError("Shape %s must have rank at least %d" % (self, rank))
ValueError: Shape (10, ?) must have rank at least 3


#coding=utf-8
import numpy as np
import tensorflow as tf
import matplotlib as mpl
mpl.use('Agg')
from matplotlib import pyplot as plt



learn=tf.contrib.learn

HIDDEN_SIZE=30    
NUM_LAYERS=2    
TIMESTEPS=10    
TRAINING_STEPS=10000    
BATCH_SIZE=32       
TRAINING_EXAMPLES=10000      
TESTING_EXAMPLES=1000    
SAMPLE_GAP=0.01      

def generate_data(seq):
    X=[]
    y=[]
    for i in range(len(seq)-TIMESTEPS-1):
        X.append([seq[i:i+TIMESTEPS]])
        y.append([seq[i+TIMESTEPS]])
    return np.array(X,dtype=np.float32),np.array(y,dtype=np.float32)

def lstm_model(X,y):
    lstm_cell=tf.nn.rnn_cell.BasicLSTMCell(HIDDEN_SIZE)
    cell=tf.nn.rnn_cell.MultiRNNCell([lstm_cell]*NUM_LAYERS)

    x_=tf.unstack(X,axis=1)

    output,_=tf.nn.dynamic_rnn(cell,x_,dtype=tf.float32)

    output=output[-1]
    prediction,loss=learn.models.linear_regression(output,y)
    train_op=tf.contrib.layers.optimize_loss(loss,tf.contrib.framework.get_global_step(),optimizer="Adagrad",learning_rate=0.1)
    return prediction,loss,train_op

regressor=learn.Estimator(model_fn=lstm_model)

test_start=TRAINING_EXAMPLES*SAMPLE_GAP
test_end=(TRAINING_EXAMPLES+TESTING_EXAMPLES)*SAMPLE_GAP
train_X,train_y=generate_data(np.sin(np.linspace(0,test_start,TRAINING_EXAMPLES,dtype=np.float32)))
test_X,test_y=generate_data(np.sin(np.linspace(test_start,test_end,TESTING_EXAMPLES,dtype=np.float32)))

regressor.fit(train_X,train_y,batch_size=BATCH_SIZE,steps=TRAINING_STEPS)

predicted=[[pred] for pred in regressor.predict(test_X)]

rmse=np.sqrt(((predicted-test_y)**2).mean(axis=0))
print('Mean square error is: %f'%rmse[0])

fig=plt.figure()
plot_predicted=plt.plot(predicted,label='predicted')
plot_test=plt.plot(test_y,label='real_sin')
plt.legend([plot_predicted,plot_test],['predicted','real_sin'])
fig.savefig('sin.png')

我们能得到完整的堆栈跟踪吗请回溯在上面看起来你发送给fit函数的东西是错误的形状。它说它应该是等级3,即[x,y,z]。也许您没有向它发送正确的数据?我尝试将输入矩阵重新整形为3D,但是,另一个错误是ValueError:尝试共享变量rnn/multi\u rnn\u cell/cell\u 0/basic\u lstm\u cell/kernel,但指定了形状60、120和找到的形状40,120.这个错误听起来像是你的数据形状不正确,并且没有正确地重塑形状。我对lstm单元了解不多,但如果您在Tensorflow中可视化图形,您可以在数据流经图形时以图形方式看到数据的形状,您可能会发现类似的错误。祝你好运