Проблемы при воссоздании кода: Tensorflow NN выдает ошибку типа: ошибка типа: нечитаемый тип: часть - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь воссоздать код из этой статьи Medium: https://medium.com/@rajatgupta310198/getting-started-with-neural-network-for-regression-and-tensorflow-58ad3bd75223

Я работаю над тем, чтобы продублировать результаты, но сталкиваюсь с большим количеством ошибок.

Я сделал некоторые корректировки из оригинальной статьи:

scaler = MinMaxScaler () # Для нормализации набора данных я избавился от этого. удалила функцию денормализации())

изменено на

X_train = df_train.drop (['Close'], axis = 1) y_train = df_train ['Close']

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import tensorflow as tf

df = pd.read_csv('data.csv') # read data set using pandas
print(df.info()) # Overview of dataset
df = df.drop(['Date'],axis=1) # Drop Date feature
df = df.dropna(inplace=False)  # Remove all nan entries.

df = df.drop(['Adj Close','Volume'],axis=1) # Drop Adj close and volume feature
df_train = df[:1059]    # 60% training data and 40% testing data
df_test = df[1059:]

X_train = df_train.drop(['Close'],axis=1)                                                   
y_train = df_train['Close']

X_test = df_test.drop(['Close'],axis=1)
y_test = df_test['Close']

def neural_net_model(X_data,input_dim):
    W_1 = tf.Variable(tf.random_uniform([input_dim,10]))
    b_1 = tf.Variable(tf.zeros([10]))
    layer_1 = tf.add(tf.matmul(X_data,W_1), b_1)
    layer_1 = tf.nn.relu(layer_1)

    # layer 1 multiplying and adding bias then activation function
    W_2 = tf.Variable(tf.random_uniform([10,10]))
    b_2 = tf.Variable(tf.zeros([10]))
    layer_2 = tf.add(tf.matmul(layer_1,W_2), b_2)
    layer_2 = tf.nn.relu(layer_2)
    # layer 2 multiplying and adding bias then activation function
    W_O = tf.Variable(tf.random_uniform([10,1]))
    b_O = tf.Variable(tf.zeros([1]))
    output = tf.add(tf.matmul(layer_2,W_O), b_O)
    # O/p layer multiplying and adding bias then activation function
    # notice output layer has one node only since performing #regression
    return output

xs = tf.placeholder("float")
ys = tf.placeholder("float")
output = neural_net_model(xs,3)
cost = tf.reduce_mean(tf.square(output-ys))
train = tf.train.GradientDescentOptimizer(0.001).minimize(cost)

with tf.Session() as sess:
    # Initiate session and initialize all vaiables
    sess.run(tf.global_variables_initializer())
    saver = tf.train.Saver()
    #saver.restore(sess,'yahoo_dataset.ckpt')
    for i in range(100):
        for j in range(X_train.shape[0]):
            sess.run([cost,train],feed_dict=    {xs:X_train[j,:].reshape(1,3), ys:y_train[j]})
            # Run cost and train with each sample
        c_t.append(sess.run(cost, feed_dict={xs:X_train,ys:y_train}))
        c_test.append(sess.run(cost, feed_dict={xs:X_test,ys:y_test}))
        print('Epoch :',i,'Cost :',c_t[i])
    pred = sess.run(output, feed_dict={xs:X_test})
    # predict output of test data after training
    print('Cost :',sess.run(cost, feed_dict={xs:X_test,ys:y_test}))
    y_test = denormalize(df_test,y_test)
    pred = denormalize(df_test,pred)
    #Denormalize data     
    plt.plot(range(y_test.shape[0]),y_test,label="Original Data")
    plt.plot(range(y_test.shape[0]),pred,label="Predicted Data")
    plt.legend(loc='best')
    plt.ylabel('Stock Value')
    plt.xlabel('Days')
    plt.title('Stock Market Nifty')
    plt.show()
    if input('Save model ? [Y/N]') == 'Y':
        saver.save(sess,'yahoo_dataset.ckpt')
        print('Model Saved')


TypeError Traceback (последний последний вызов) в () 6 для i в диапазоне (100): 7 для j в диапазоне (X_train.shape [0]): ----> 8 sess.run ([стоимость,train], feed_dict = {xs: X_train [j,:]. reshape (1,3), ys: y_train [j]}) 9 # Стоимость выполнения и тренировка с каждой выборкой 10 c_t.append (sess.run (cost,feed_dict = {xs: X_train, ys: y_train}))

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py в getitem (self, key) 2683 return self._getitem_multilevel (key) 2684 else: -> 2685 return self._getitem_column (key) 2686 2687 def _getitem_column (self, key):

~ \ AppData \ Local \ Continuum \anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py в _getitem_column (self, key) 2690 # get column 2691, если self.columns.is_unique: -> 2692 возвращает self._get_item_cache (ключ) 2693 2694 # дублировать столбцы и возможно уменьшить размерность

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages\ pandas \ core \ generic.py в _get_item_cache (self, item) 2482 "" "Возвращает кэшированный элемент, элемент представляет индексатор меток." "" 2483 cache = self._item_cache -> 2484 res = cache.get (item)2485, если res - None: 2486 values ​​= self._data.get (item)

Ошибка типа: неустранимый тип: 'slice'

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