質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

275閲覧

Pythonのエラーの解決方法を教えてください。

1524

総合スコア4

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/16 13:53

編集2020/01/16 14:18

前提・実現したいこと

python初心者です。
https://www.atmarkit.co.jp/ait/articles/1712/11/news134.html
上記の記事をまず動かしてみたいと思いコードを入力しているのですが、エラーが出てしました。
エラーの解決策をご教授お願いいたします。PY

発生している問題・エラーメッセージ

AttributeError Traceback (most recent call last) <ipython-input-31-7b4a94d4e9e4> in <module> 7 # 学習 8 ----> 9 Model = prediction.train(x_train, t_train, batch_size, epochs) 10 # テスト 11 score = Model.evaluate(x_test, t_test, batch_size = batch_size, verbose = 1) <ipython-input-28-6ed012f1521e> in train(self, x_train, t_train, batch_size, epochs) 25 model = self.create_model() 26 model.fit(x_train, t_train, batch_size = batch_size, epochs = epochs, verbose = 1, ---> 27 shuffle = True, callbacks = [early_stopping], validation_split = 0.1) 28 return model ~\Anaconda3\envs\keras-env\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs) 1008 else: 1009 ins = x + y + sample_weights -> 1010 self._make_train_function() 1011 f = self.train_function 1012 ~\Anaconda3\envs\keras-env\lib\site-packages\keras\engine\training.py in _make_train_function(self) 507 training_updates = self.optimizer.get_updates( 508 params=self._collected_trainable_weights, --> 509 loss=self.total_loss) 510 updates = (self.updates + 511 training_updates + ~\Anaconda3\envs\keras-env\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs) 89 warnings.warn('Update your `' + object_name + '` call to the ' + 90 'Keras 2 API: ' + signature, stacklevel=2) ---> 91 return func(*args, **kwargs) 92 wrapper._original_function = func 93 return wrapper ~\Anaconda3\envs\keras-env\lib\site-packages\keras\optimizers.py in get_updates(self, loss, params) 267 # update accumulator 268 new_a = self.rho * a + (1. - self.rho) * K.square(g) --> 269 self.updates.append(K.update(a, new_a)) 270 new_p = p - lr * g / (K.sqrt(new_a) + self.epsilon) 271 ~\Anaconda3\envs\keras-env\lib\site-packages\keras\backend\tensorflow_backend.py in update(x, new_x) 971 The variable `x` updated. 972 """ --> 973 return tf.assign(x, new_x) 974 975 ~\Anaconda3\envs\keras-env\lib\site-packages\tensorflow_core\python\ops\state_ops.py in assign(ref, value, validate_shape, use_locking, name) 226 ref, value, use_locking=use_locking, name=name, 227 validate_shape=validate_shape) --> 228 return ref.assign(value, name=name) 229 230 AttributeError: 'Tensor' object has no attribute 'assign'

該当のソースコード

import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import csv from __future__ import print_function from keras.layers.core import Activation from keras.layers.core import Dense from keras.layers.core import Dropout from keras.models import Sequential from keras.utils import np_utils from keras.utils import plot_model from keras.layers.recurrent import LSTM from keras.callbacks import EarlyStopping from keras.initializers import glorot_uniform from keras.initializers import orthogonal from keras.initializers import TruncatedNormal # 学習データ df1 = csv.reader(open('x-data.csv', 'r')) data1 = [ v for v in df1] mat = np.array(data1) mat2 = mat[1:] # 見出し行を外す x_data = mat2[:, 1:].astype(np.float) # 2列目以降を抜き出してfloat変換 print('x_data.shape=', x_data.shape) # ラベルデータ # 1%以上/0%以上/-1%以上/-1%未満 df2 = csv.reader(open('t-data.csv', 'r')) data2 = [ v for v in df2] mat3 = np.array(data2) mat4 = mat3[1:] # 見出し行を外す t_data = mat4[:, 1:].astype(np.float) # 2列目以降を抜き出してfloat変換 print('t_data.shape=', t_data.shape) maxlen = 80 # 入力系列数 n_in = x_data.shape[1] # 学習データ(=入力)の列数 n_out = t_data.shape[1] # ラベルデータ(=出力)の列数 len_seq = x_data.shape[0] - maxlen + 1 data = [] target = [] for i in range(0, len_seq): data.append(x_data[i:i+maxlen, :]) target.append(t_data[i+maxlen-1, :]) x = np.array(data).reshape(len(data), maxlen, n_in) t = np.array(target).reshape(len(data), n_out) print(x.shape, t.shape) # ここからソースコードの後半 n_train = int(len(data)*0.9) # 訓練データ長 x_train,x_test = np.vsplit(x, [n_train]) # 学習データを訓練用とテスト用に分割 t_train,t_test = np.vsplit(t, [n_train]) # ラベルデータを訓練用とテスト用に分割 print(x_train.shape, x_test.shape, t_train.shape, t_test.shape) class Prediction : def __init__(self, maxlen, n_hidden, n_in, n_out): self.maxlen = maxlen self.n_hidden = n_hidden self.n_in = n_in self.n_out = n_out def create_model(self): model = Sequential() model.add(LSTM(self.n_hidden, batch_input_shape = (None, self.maxlen, self.n_in), kernel_initializer = glorot_uniform(seed=20170719), recurrent_initializer = orthogonal(gain=1.0, seed=20170719), dropout = 0.5, recurrent_dropout = 0.5)) model.add(Dropout(0.5)) model.add(Dense(self.n_out, kernel_initializer = glorot_uniform(seed=20170719))) model.add(Activation("softmax")) model.compile(loss="categorical_crossentropy", optimizer = "RMSprop", metrics = ['categorical_accuracy']) return model # 学習 def train(self, x_train, t_train, batch_size, epochs) : early_stopping = EarlyStopping(patience=0, verbose=1) model = self.create_model() model.fit(x_train, t_train, batch_size = batch_size, epochs = epochs, verbose = 1, shuffle = True, callbacks = [early_stopping], validation_split = 0.1) return model n_hidden = 80 # 出力次元 epochs = 100 # エポック数 batch_size = 10 # ミニバッチサイズ # モデル定義 prediction = Prediction(maxlen, n_hidden, n_in, n_out) # 学習 model = prediction.train(x_train, t_train, batch_size, epochs) # テスト score = model.evaluate(x_test, t_test, batch_size = batch_size, verbose = 1) print("score:", score) # 正答率、準正答率(騰落)集計 preds = model.predict(x_test) correct = 0 semi_correct = 0 for i in range(len(preds)): pred = np.argmax(preds[i,:]) tar = np.argmax(t_test[i,:]) if pred == tar : correct += 1 else : if pred+tar == 1 or pred+tar == 5 : semi_correct += 1 print("正答率:", 1.0 * correct / len(preds)) print("準正答率(騰落):", 1.0 * (correct+semi_correct) / len(preds))

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2020/01/16 13:57

質問を編集して、エラーメッセージだけでなくコードもコードブロックの中にいれるようにしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問