ページ

2016年7月24日日曜日

Cakephp3を利用しShellでComponentを利用する.

cakephp3を利用してShellでComponentを呼び出すのが
少し面倒だったのでまとめ

src/Controller/Component/TestsComponent.php

<?php

namespace App\Controller\Component;
use Cake\Controller\Component;

class TestsComponent extends Component {

    public function test() {
        echo "OK\n";
    }
}

src/Shell/SampleShell.php

<?php
namespace App\Shell;

use Cake\Console\ConsoleOptionParser;
use Cake\Console\Shell;
use Cake\Log\Log;
use Psy\Shell as PsyShell;
use Cake\Controller\Component;
use Cake\Controller\ComponentRegistry;
use App\Controller\Component\TestsComponent;

class SampleShell extends Shell {
    public function initialize() {
        $this->Tests = new TestsComponent(new ComponentRegistry());
    }
    
    public function main() {
        $this->Tests->test();
    }
}

どうやらオートロードできないみたいなので自分でコンポーネントを初期化する必要があるみたいです。
Abstract化したりしてリフレクション的な感じで簡易化できそうな気もするのでできたら追記予定。

2016年7月2日土曜日

CentOS 7にTensorFlowをインストールする

自分メモ

以下のWindowsにVirutal Boxをインストールし実施


  • Virtual Box 5.0.22 r108108
  • 実施日:2016/06/28
  • OS CentOS-7-x86_64-Minimal-1511


普通にインストールしてネットワークが起動しない場合は以下を実施して対処

ネットーワークの起動
インストール時にonbootをonにしていない場合はこの設定が必要です。
$ nmcli c
=====
NAME UUID TYPE DEVICE
enp0s3 xxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxx 802-3-ethernet enp0s3
=========

enp0s3がデバイスのID

onbootを有効にする。
$ nmcli c m enp0s3 connection.autoconnect yes

ネットワークの再起動
$ systemctl restart NetworkManager
$ systemctl restart network

IPアドレスの確認
$ ip addr


pipのインストール
$ yum install -y epel-release
$ yum install -y python-pip
$ pip install pip --upgrade

その他ライブラリのインストール
$ yum install -y python-devel python-virtualenv

TensorFlowのインストール
$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl

TensorFlowの環境設定ファイルを設置
$ virtualenv --system-site-packages ~/tensorflow


TensorFlowの設定を呼び出し
$ source ~/tensorflow/bin/activate


$ vi test.py
========以下を貼り付け============
import tensorflow as tf
import numpy as np
==================================


$ python test.py
エラーが出なければ成功



まとめ
CentOS6系とかと比べてほとんど変わらないです。