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

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

ただいまの
回答率

88.63%

tensorflowのインポートについて

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,097

hiro329

score 18

チャットボットのサンプルプログラムで、以下のエラーが出ています。
モジュールの宣言の方法が変わったのかなと思っているのですが、いまいちよくわかりません。

from tensorflow.models.rnn.translate import seq2seq_model
from tensorflow.python.platform import gfile


ここで、2行目が通ることは確認してるのイですが、1行目が通りません。
この書き方は、tensorflowにmodelsというメソッド(?)というのはあるのでしょうか。
また、同様にtensorflowにpythonというメソッドは存在するのでしょうか?
VSCでプログラムの練習をしていますが、tensorflowを打った後の予測に、modelsというのがありません。
すべて、予測してくれるとは思ってはいないのですが、ここでエラーが出て進まないのですが、解決方法などを教えていただけると幸いです。
よろしくお願いいたします。

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import MeCab

import math
import os
import random
import sys
import time

import tensorflow.python.platform


import numpy as np
from six.moves import xrange
import tensorflow as tf

import data_utils
from tensorflow.models.rnn.translate import seq2seq_model
from tensorflow.python.platform import gfile


tf.app.flags.DEFINE_float("learning_rate", 0.5, "Learning rate.")
tf.app.flags.DEFINE_float("learning_rate_decay_factor", 0.99,
                          "Learning rate decays by this much.")
tf.app.flags.DEFINE_float("max_gradient_norm", 5.0,
                          "Clip gradients to this norm.")
tf.app.flags.DEFINE_integer("batch_size", 4,
                            "Batch size to use during training.")
tf.app.flags.DEFINE_integer("size", 256, "Size of each model layer.")
tf.app.flags.DEFINE_integer("num_layers", 2, "Number of layers in the model.")
tf.app.flags.DEFINE_integer("in_vocab_size", 12500, "input vocabulary size.")
tf.app.flags.DEFINE_integer("out_vocab_size", 12500, "output vocabulary size.")
tf.app.flags.DEFINE_string("data_dir", "./datas", "Data directory")
tf.app.flags.DEFINE_string("train_dir", "./datas", "Training directory.")
tf.app.flags.DEFINE_integer("max_train_data_size", 0,
                            "Limit on the size of training data (0: no limit).")
tf.app.flags.DEFINE_integer("steps_per_checkpoint", 100,
                            "How many training steps to do per checkpoint.")
tf.app.flags.DEFINE_boolean("decode", False,
                            "Set to True for interactive decoding.")
tf.app.flags.DEFINE_boolean("self_test", False,
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import random

import numpy as np
from six.moves import xrange  
import tensorflow as tf

from tensorflow.models.rnn import rnn_cell
from tensorflow.models.rnn import seq2seq

import data_utils


class Seq2SeqModel(object):   

  def __init__(self, source_vocab_size, target_vocab_size, buckets, size,
               num_layers, max_gradient_norm, batch_size, learning_rate,
               learning_rate_decay_factor, use_lstm=False,
               num_samples=512, forward_only=False):

    self.source_vocab_size = source_vocab_size    
    self.target_vocab_size = target_vocab_size
    self.buckets = buckets
    self.batch_size = batch_size
    self.learning_rate = tf.Variable(float(learning_rate), trainable=False)
    self.learning_rate_decay_op = self.learning_rate.assign(
        self.learning_rate * learning_rate_decay_factor)
    self.global_step = tf.Variable(0, trainable=False)


    output_projection = None
    softmax_loss_function = None
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • tiitoi

    2018/11/19 17:35

    tensorflow.python はありますが、tensorflow.models はないです。参照した情報が古いか間違っているのでしょう。

    キャンセル

  • hiro329

    2018/11/19 17:43

    回答ありがとうございます。やはり、間違っているんですね。そこで質問なのですが、tensorflowで、seq2seq_modelやrnn_cellなどを読み込むための、メソッドはあるのでしょうか。

    キャンセル

回答 1

checkベストアンサー

+2

tf.nn.rnn_cell モジュールに RNN や LSTM Cell があります。

Seq2Seq は Tensorflow 公式では提供されていませんが、contrib に tf.contrib.seq2seq があります。contrib 扱いなので、Tensorflow の今後のバージョン更新により、Tensorflow 本体にマージされるか、廃止される可能性があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/20 09:33

    回答ありがとうございます。
    もう少し質問してもよろしいでしょうか。

    from tensorflow.models.rnn.translate import seq2seq_model
    from tensorflow.models.rnn import rnn_cell
    from tensorflow.models.rnn import seq2seq

    は、具体的にどのようにインポートすればよろしいのでしょうか。
    tensorflowのマニュアルは、tensorflow.orgでしょうか。
    いまいちどこを参考にしてプログラムを組んでいったらいいのかわかりません。
    pythonも始めたばかりでよくわからないので、tiitoi様は、何を参考に勉強されてきたのでしょうか。
    参考までに教えていただけいただければ、幸いです。
    よろしくお願いいたします。

    キャンセル

  • 2018/11/20 13:56 編集

    tensorflow.org の API リファレンスです。
    Web 上の解説記事や GitHub の論文の実装例等も参考にしますが、TensorFlow は API がコロコロ変わるので、そのままでは動かないことが多いです。
    なので、使用する関数は API リファレンスで確認するようにしています。

    キャンセル

  • 2018/11/20 13:59

    >具体的にどのようにインポートすればよろしいのでしょうか。

    from tensorflow.nn.rnn_cell import LSTMCell
    などと import できます。

    チュートリアルがありので、参考にしてみてはどうでしょうか。
    https://www.tensorflow.org/tutorials/sequences/recurrent#lstm

    キャンセル

  • 2018/11/20 14:18

    ありがとうございます。
    いつもいつもおせわになります。

    キャンセル

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

  • ただいまの回答率 88.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る