Я пытаюсь воссоздать код из этой статьи 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'