2025年8月20日 星期三

2024年6月10日 星期一

get git new version in ubuntu

sudo -E add-apt-repository ppa:git-core/ppa

sudo apt-get update

sudo apt-get install git

2024年2月21日 星期三

 build rustformers dockerfile

step 1: git clone https://github.com/rustformers/llm.git && git submodule update --init

step 2: cd llm && mv utils/Dockerfile .

step 3: modify dockerfile as shown below

 # Start with a rust alpine image

FROM rust:alpine3.19 as builder

# This is important, see https://github.com/rust-lang/docker-rust/issues/85

ENV RUSTFLAGS="-C target-feature=-crt-static"

# if needed, add additional dependencies here

RUN apk add --no-cache musl-dev pkgconfig openssl-dev

# set the workdir and copy the source into it

WORKDIR /app

COPY ./ /app

# do a release build

RUN cargo build --release --bin llm

RUN strip target/release/llm

step 4:  docker build -t rustformers:v1 .



 untimeError: cutlassF: no kernel found to launch!

Try to add

torch.backends.cuda.enable_mem_efficient_sdp(False)
torch.backends.cuda.enable_flash_sdp(False)

reference:

https://huggingface.co/stabilityai/stable-cascade/discussions/11

2023年9月19日 星期二

MOJO install in WSL

WSL ubuntu_22.04

conda create -n mojo python=3.10

conda activate mojo

sudo apt-get install -y apt-transport-https &&

  keyring_location=/usr/share/keyrings/modular-installer-archive-keyring.gpg &&

  curl -1sLf 'https://dl.modular.com/bBNWiLZX5igwHXeu/installer/gpg.0E4925737A3895AD.key' |  gpg --dearmor | sudo tee ${keyring_location} &&

  curl -1sLf 'https://dl.modular.com/bBNWiLZX5igwHXeu/installer/config.deb.txt?distro=debian&codename=wheezy' | sudo tee /etc/apt/sources.list.d/modular-installer.list &&

 sudo apt-get update &&

 sudo apt-get install -y modular

modular auth mut_f515f73db5154dfb8ab8d0148513938e &&

modular install mojo

echo 'export MODULAR_HOME="/home/user/.modular"' >> ~/.bashrc

echo 'export PATH="/home/user/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc

source ~/.bashrc

mojo

Welcome to Mojo! 🔥

Expressions are delimited by a blank line.

Type `:mojo help` for further assistance.

1>

it's work ^^

source: https://github.com/modularml/mojo/issues/607

2022年11月2日 星期三

需求:在docker container 中可以run docker

 docker in docker

docker run --name my_dind --privileged -d -p5555:22 -p 8888:8888 docker:dind


set ssh server on alpine

apk search openssh

apk add openssh

rc-update add sshd


rc-status

/etc/init.d/sshd restat

ssh users@0.0.0.0 -p5555

scp -P 5555 .\hello.py user@0.0.0.0:/home/user


FROM alpine:3.1

RUN apk add --update make cmake gcc g++ gfortran
RUN apk add --update python py-pip python-dev
RUN pip install cython
RUN pip install numpy



reference

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

https://www.cyberciti.biz/faq/how-to-install-openssh-server-on-alpine-linux-including-docker/

https://wiki.alpinelinux.org/wiki/Setting_up_a_SSH_server

2021年4月27日 星期二

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. 
Make sure that the latest NVIDIA driver is installed and running.


移除nvidia驅動

sudo apt-get remove --purge '^nvidia-.*'

sudo apt-update

安裝驅動

sudo ubuntu-drivers autoinstall

安裝linux-headers

sudo apt install linux-headers-$(uname -r)

2019年1月8日 星期二

install dynet on mac

first, install Eigen3

brew install cmake hg
hg clone https://bitbucket.org/eigen/eigen/ -r b2e267d
brew install --HEAD eigen


cd dynet
mkdir build
cd build

cmake .. -DEIGEN3_INCLUDE_DIR=/usr/local/cellar/eigen/3.3.4/include/eigen3 -DENABLE_CPP_EXAMPLES=ON
make -j4
then error
/usr/local/Cellar/eigen/3.3.4/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h:39:7: error: 
      class template partial specialization is not more specialized than the

      primary template [-Winvalid-partial-specialization]

set the following information in  CMakeLists.txt line 84

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization")

make -j4

done
# Test with an example
./examples/xor
Reference:

https://github.com/clab/dynet#installation
https://github.com/zou3519/pytorch/commit/6ba96952a6c7b9a6a495f333427c15c7ba18fa22

2018年1月8日 星期一

Proxy


add-apt-repository-wont-work-on-proxy

$ sudo vim /etc/apt/apt.conf

Acquire::http::proxy "http://localhost:9999";
Acquire::ftp::proxy "ftp://localhost:9999";
Acquire::https::proxy "https://localhost:9999";

sudo visudo
then add the following lines
Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"
then:
sudo bash
export https_proxy=http://[username:password@]www.proxy.com:8000/
add-apt-repository ppa:


sudo -E add-apt-repository ppa:webupd8team/java

conda proxy

put .condarc file in home folder
proxy_servers:
    http: http://user:pass@corp.com:8080
    https: https://user:pass@corp.com:8080

git proxy

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

docker proxy
Creating Proxy Configuration
  1. Create a new directory for our Docker service configurations.
    sudo mkdir -p /etc/systemd/system/docker.service.d
  2. Create a file called proxy.conf in our configuration directory.
    sudo vi /etc/systemd/system/docker.service.d/proxy.conf
  3. Add the following contents, changing the values to match your environment.
    [Service]
    Environment="HTTP_PROXY=http://myproxy.hostname:8080"
    Environment="HTTPS_PROXY=https://myproxy.hostname:8080/"
    Environment="NO_PROXY=localhost,127.0.0.1,::1"
  4. Save your changes and exit the text editor.
  5. Reload the daemon configuration.
    sudo systemctl daemon-reload
  6. Restart Docker to apply our changes.
    sudo systemctl restart docker.service
Set transformers, sentencetransformers download model proxy
import os
os.environ['http_proxy']='your proxy'
os.environ['https_proxy']='your proxy'

在公司環境下使用GOlang with VSCODE設置 Proxy(CMD 或 PowerShell 擇一)


1、(與下擇一)使用管理者權限的 CMD 改 proxy 環境變數
> go env -w GOPROXY=https://proxy.golang.org,direct
> setx http_proxy http://xx.xx.xx.88:8080
> setx https_proxy http://xx.xx.xx.88:8080


1、(與上擇一)使用管理者權限的 Powershell 改 proxy 環境變數
> go env -w GOPROXY=https://proxy.golang.org,direct
> [Environment]::SetEnvironmentVariable("http_proxy", "http://xx.xx.xx.88:8080", 'User')
> [Environment]::SetEnvironmentVariable("https_proxy", "http://xx.xx.xx.88:8080", 'User')


2、最後要將 Visual Studio Code 重新開啟


Reference:
https://askubuntu.com/questions/92464/add-apt-repository-wont-work-on-proxy
https://stackoverflow.com/questions/31099279/running-conda-with-proxy
https://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server
https://www.serverlab.ca/tutorials/containers/docker/how-to-set-the-proxy-for-docker-on-ubuntu/
https://docs.docker.com/config/daemon/systemd/
https://stackoverflow.com/questions/65913053/how-to-set-proxy-in-sentencetransformers

2017年10月25日 星期三

Pytorch RuntimeError: t() expects a 2D Variable, but self is 3D

RuntimeError: t() expects a 2D Variable, but self is 3D
As of PyTorch v0.2, the .t() function is only applicable to 2D Variables: pytorch/pytorch@8d33603

https://github.com/facebookresearch/ParlAI/issues/270
https://discuss.pytorch.org/t/how-to-transpose-3d-matrix-in-pytorch-v0-2/7102

UnicodeDecodeError

python3 使用 python2 pickle
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3: ordinal not in range(128)

2017年7月31日 星期一

source command not found

$ls -l `which sh`
/bin/sh -> dash

$sudo dpkg-reconfigure dash #Select "no" when you're asked
[...]

$ls -l `which sh`
/bin/sh -> bash

reference:
https://stackoverflow.com/questions/13702425/source-command-not-found-in-sh-shell

caffe

圖像轉DB
convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

creat_filelist.sh
# /usr/bin/env sh
DATA=examples/images
echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA -name *cat.jpg | cut -d '/' -f3 | sed "s/$/ 1/">>$DATA/train.txt
find $DATA -name *bike.jpg | cut -d '/' -f3 | sed "s/$/ 2/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
echo "Done.."

create_lmdb.sh

#!/usr/bin/en sh
DATA=examples/images
rm -rf $DATA/img_train_lmdb
build/tools/convert_imageset --shuffle \
--resize_height=256 --resize_width=256 \
/home/xxx/caffe/examples/images/ $DATA/train.txt  $DATA/img_train_lmdb


計算mean值
/opt/caffe/build/tools/compute_image_mean ./my_data/img_train_lmdb ./my_caffe/my_mean.binaryproto

conver_mean.py
#!/usr/bin/env python
import numpy as np
import sys,caffe

if len(sys.argv)!=3:
    print "Usage: python convert_mean.py mean.binaryproto mean.npy"
    sys.exit()

blob = caffe.proto.caffe_pb2.BlobProto()
bin_mean = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(bin_mean)
arr = np.array( caffe.io.blobproto_to_array(blob) )
npy_mean = arr[0]
np.save( sys.argv[2] , npy_mean )

2017年7月27日 星期四

pyodbc connect to sql server

Install:

https://github.com/mkleehammer/pyodbc/wiki/Install

code:
import pyodbc
#connect to db
conn = pyodbc.connect(
    r'DRIVER={ODBC Driver 13 for SQL Server};'
    r'SERVER=127.0.0.1;'
    r'DATABASE=DB_table;'
    r'UID=yasam;'
    r'PWD=password'
    )
cursor = conn.cursor()
sqlInsert="INSERT INTO [dbo].[test_table](RecordID,Model,SubmitDate,CountryCode,Score,Comment) VALUES "

for i, d in enumerate(df):
    print(i)
    #truncate to 1024 for db size
    if len(d[5])>1024:
        d[5]=d[5][:1024]
    if len(d[1])>32:
        d[2]=d[1][:32]
    d[5]=d[5].replace("'","''") # Comment, replace ' for sql
    d[2]=d[2].replace("'","''") #Model
    d[4]=str(d[4]) # float to str
    temp="("+",".join(["N'"+dd+"'" for dd in d])+")" #N for encoding
    tList.append(temp)
    if i == len(df)-1:
        text=','.join(tList)
        cursor.execute(sqlInsert+text)    #last insert
    elif i % 10 == 9:
        text=','.join(tList)
        print(text)
        cursor.execute(sqlInsert+text)   #batch insert
        tList=[]
        temp=''
conn.commit()


reference:
pyodbc 用法
https://my.oschina.net/zhengyijie/blog/35587

Inserting multiple rows in a single SQL query
https://stackoverflow.com/questions/452859/inserting-multiple-rows-in-a-single-sql-query

Pyodbc query string quote escaping
使用兩個''避免或用?方式



unicode 問題(沒遇到)
http://blog.csdn.net/samed/article/details/50539742

2017年7月13日 星期四

python3 gensim id2token not fund

rspList=sorted(glob.glob('./data/*'))
df=[]
for rsp in rspList:
    data=pd.read_csv(rsp)
    df.append(data)  
df=pd.concat(df)
stoplist= set('i am you are he she is a for of the and to in'.split())
sents=df['translated_feedback'][df['translated_feedback']!='\\N'] #remove no response
texts=[[word for word in sent.translate(trans_table).lower().split()
        if word not in stoplist] for sent in sents.values] #remove stopwords and punctuation
texts=list(filter(None,texts)) #filter empty list
#print(texts)
feq=defaultdict(int)
for text in texts:
    for token in text:
        feq[token]+=1

texts=[[token for token in text if feq[token]>1] for text in texts] #remove low frequency

dic=corpora.Dictionary(texts) #build dictionary
 
dic.save('./dictionary.dict')
#print(dic)
corpus =[dic.doc2bow(text) for text in texts] #build bag of words corpus
corpora.MmCorpus.serialize('./corpus.mm',corpus)
#print(corpus)

when i want to get id2token in dic, it is empty dictionary {}
dic.id2token
{}

I have to traverse(iterate) the dic ones
for k,v in dic.items():
    pass
dic.id2token
{0:'yes',1:'got',2:'it'}

2017年6月28日 星期三

build caffe error

Q1: Can't find hdf5.h when build caffe

Ans:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ and
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

Q2: caffe compilation error (on make all step) "[.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1

Ans:
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python3.so


Q3: .build_release/lib/libcaffe.so: undefined reference to `cv::imdecode

Ans:
# OPENCV_VERSION := 3
To use OpenCV 3.X with Caffe, you should uncomment this line. You can refer to the 197th line in Makefile for the reason.

Q4: Multi-GPU

Ans:
uncomment USE_NCCL := 1 in Makefile.config and install nccl first,
$ git clone https://github.com/NVIDIA/nccl.git
$ cd nccl
$ sudo make install -j8

Q5: runing caffe error ../build/tools/caffe: error while loading shared libraries: libnccl.so.1: cannot open shared object file: No such file or directory

Ans:
add libnccl.so.1 path to LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:/usr/local/lib"

Q6: can't import caffe in python
make pycaffe
make distribute
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH


referance:
https://github.com/NVIDIA/DIGITS/issues/156
https://github.com/BVLC/caffe/issues/4610
https://github.com/BVLC/caffe/issues/4621

2017年6月21日 星期三

ubuntu中文亂碼

install locales:
sudo apt-get update && sudo apt-get install locales

sudo locale-gen zh_TW zh_TW.UTF-8 zh_CN.UTF-8 en_US.UTF-8
export LANG="zh_TW.UTF-8"

顯示目前已安裝語系
$ locale -a
顯示語系設定
$ locale
產生語系檔案
 sudo locale-gen zh_TW zh_TW.UTF-8 zh_CN.UTF-8 en_US.UTF-8

選擇安裝語系
sudo dpkg-reconfigure locales

sudo update-locale LANG="zh_TW.UTF-8" LANGUAGE="zh_TW"

個人
vim ~/.bashrc
export LC_CTYPE=zh_TW.UTF-8 # 可以輸入UTF-8中文
export LC_MESSAGES=zh_TW.UTF-8 # 可以顯示UTF-8中文

系統全域設定
sudo vim /etc/default/locale
LC_CTYPE=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8
or
sudo vim /etc/environment
LC_CTYPE=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8



reference:
https://unix.stackexchange.com/questions/223533/cant-install-locales
http://www.davidpai.tw/ubuntu/2011/ubuntu-set-locale/

2017年6月19日 星期一

docker run jupyter notebook

docker run -ti -p 8888:8888 docker_image_name

jupyter notebook --ip '*' ---port 8888 --allow-root

error:
in client:
A connection to the notebook server could not be established. The notebook will continue trying to reconnect. Check your network connection or notebook server configuration.
in server:
404 GET /nbextensions/widgets/notebook/js/extension.js?v=20170619093750

公司proxy擋ipython notebook 執行

顯示圖片 IOPub data rate exceeded.
--NotebookApp.iopub_data_rate_limit=1.0e10

reference
https://stackoverflow.com/questions/43288550/iopub-data-rate-exceeded-when-viewing-image-in-jupyter-notebook

2017年6月14日 星期三

ipython can't reload module when run modified file

fileA.py
import fileB
...

fileB.py
print (0)

in IPYTHON
First time, when i run fileA.py, it print 0
then, i modify the fileB.py
print(1)

second time, run fileA.py, it also print 0

because the run magic function do not use deepreload

reference:
https://stackoverflow.com/questions/13150259/ipython-re-importing-modules-when-using-run
http://ipython.org/ipython-doc/dev/api/generated/IPython.lib.deepreload.html

2017年6月7日 星期三

ParlAI train an attentive LSTM example error

In ParlAI
Trains an attentive LSTM model on the SQuAD dataset with a batch size of 32 examples (pytorch and regex):
```bash
python examples/drqa/train.py -t squad -bs 32
```
with an error:
version `GOMP_4.0' not found 

solution:
rename or remove the libgomp.so.1 in pytorch package
force it to use libgomp.so.1 installed by the system

sudo mv /usr/local/lib/python3.5/dist-packages/torch/lib/libgomp.so.1 /usr/local/lib/python3.5/dist-packages/torch/lib/libgomp.so.1.back

reference:
https://github.com/hughperkins/pytorch/issues/28