

上記の通りですがプログラムとターミナルをご提示します。

[code]

    # coding: UTF-8
    
    from sklearn import datasets, externals, linear_model, model_selection
    import time
    
    print('MNISTの取得：', end='', flush=True)
    mnist = datasets.fetch_mldata('MNIST original', data_home='.')
    data, label = mnist.data, mnist.target
    print('完了')
    
    TRAIN_SIZE = 600
    TEST_SIZE = 100
    
    t = model_selection.train_test_split(
        data, label, train_size=TRAIN_SIZE, test_size=TEST_SIZE)
    train_data, test_data, train_label, test_label = t
    print('訓練データ：', train_data.shape)
    print('テストデータ：', test_data.shape)
    
    print('学習：', end='', flush=True)
    old = time.time()
    model = linear_model.LogisticRegression().fit(train_data, train_label)
    print(time.time()-old, '秒')
    
    externals.joblib.dump(model, 'lr.model')
    
    print('テスト結果：')
    predict = model.predict(test_data)
    count = [[0 for i in range(10)] for j in range(10)]
    for i in range(TEST_SIZE):
        count[int(predict[i])][int(test_label[i])] += 1
    print('正解   ', end='')
    for i in range(10):
        print('   [{0}]'.format(i), end='')
    print()
    for i in range(10):
        print('予測[{0}]'.format(i), end='')
        for j in range(10):
            print('{0:6d}'.format(count[i][j]), end='')
        print()
    
    print('正解率：', model.score(test_data, test_label)*100, '%')
    
[/code]

ターミナルは以下の通りです。

[code]

    ShouzounoiMac:WakaruPython syamaguchi$ python lr_train.py
      File "lr_train.py", line 6
        print('MNISTの取得：', end='', flush=True)
                                      ^
    SyntaxError: invalid syntax
    
[/code]

インターネットで調べてみましたがよくわかりません。お願いします。


CC BY-SA 4.0
2019-06-15T01:25:02.000
55793
2019-06-15T02:13:45.670
2019-06-15T02:13:45.670
7347
34138
question
python python3
『わかるPython』中のプログラムをターミナルから実行しようとするとSyntaxErrorとなります。


Python3.3より前のバージョンで実行しているからですかね。Python3.3以降を使って下さい。

[code]

    $ python
    Python 2.7.12 (default, Nov 12 2018, 14:36:49) 
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print('MNISTの取得：', end='', flush=True)
      File "<stdin>", line 1
        print('MNISTの取得：', end='', flush=True)
                                      ^
    SyntaxError: invalid syntax
    
    $ python3
    Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print('MNISTの取得：', end='', flush=True)
    MNISTの取得：>>> 
    
    
[/code]

参考  
<https://docs.python.org/3.3/library/functions.html#print>

> Changed in version 3.3: Added the flush keyword argument.


CC BY-SA 4.0
2019-06-15T02:00:59.260
55795
2019-06-15T02:07:58.917
2019-06-15T02:07:58.917
21092
21092
55793
answer