目录
- 一、安装准备
- 二、安装步骤
- 三、运行前的一些其他东西
- 四、运行
github地址https://github.com/google-deepmind/alphageometry
本文主要介绍如何在MacOS上安装
MacOS版本:12.07
一、安装准备
一台电脑 (这是废话)- Python3.10.9(这是
README.md
里面要求的),已经配置好环境变量,(建议)换到国内源,不要用brew安装 - pip安装virtualenv
(如果不想用虚拟环境可以跳过) - git
二、安装步骤
如果不想看介绍,可以直接复制代码块里面的内容~
首先把文件下载一下
在终端里面输入(安装过程尽量使用同一个终端界面)
bash(之后没有特殊说明,全是bash)
git clone https://github.com/google-deepmind/alphageometry.git
如果没有成功,请自己百度
然后我们进入文件夹
cd alphageometry
文件夹里面有一个README.md
打开它我们发现可以这样安装
bash run.sh
不出意外的话是装不了的
于是直接打开run.sh
我们一条一条运行
set -e
set -x
这两行没太大用处,不输也没事
我们直接看下面一行
virtualenv -p python3 .
这一步是在当前文件夹创建虚拟环境,注意不要忘了后面的.
source ./bin/activate
这一步是激活虚拟环境
注意:如果安装过程中关闭了终端,重新打开时要再输一遍
激活之后命令行前面会带上一个(alphageometry)
标志
pip install --require-hashes -r requirements.txt
这里是第一个可能出问题的地方
如果用原来的源安装,速度会非常慢且容易报错
如果用国内(这里我用的清华源,其他的不清楚)的,会在requirements.txt的一千多行报错(其实是找不到seqio-nightly和tfds-nightly这两个东西,好像只有pypi.org上有)
我用的是下面这个繁琐的方法
- 首先安装tensorflow
pip install tensorflow==2.13.0
因为如果直接进行下一步的话,tensorflow会从pypi.org上下载,会报错(timeout)
- 然后从pypi.org上下载seqio-nightly和tfds-nightly
pip install seqio-nightly==0.0.17.dev20231013 tfds-nightly==4.9.2.dev202308090034 -i https://pypi.org/simple
这一步会非常慢(2h左右),中间会出现一些抽象的东西(比如把scipy>=9.0.0的版本全下一遍)
- 最后终于可以安装了
pip install --require-hashes -r requirements.txt
这一步大概要一个小时
安装完后会有一个报错信息(tensorflow的版本有问题),不用管它
gdown --folder https://bit.ly/alphageometry
这是第二个出问题的地方
这个网址指向Google Drive,不出意外的话是无法连接的
可以考虑到网上找人代下
总共3个文件,不到1.5个G
把这三个文件拷贝到alphageometry文件夹下的ag_ckpt_vocab文件夹里
DATA=ag_ckpt_vocab
MELIAD_PATH=meliad_lib/meliad
这两行是设置变量的,安装过程中不需要
mkdir -p $MELIAD_PATH
创建meliad的文件夹
因为刚才没有设置MELIAD_PATH,我们把它改一下
mkdir -p meliad_lib/meliad
git clone https://github.com/google-research/meliad $MELIAD_PATH
这是拷贝meliad库,同上,也要改一下
git clone https://github.com/google-research/meliad meliad_lib/meliad
到这里安装就完成了,run.sh后面的命令是运行用的
三、运行前的一些其他东西
README.md
里面建议运行run_tests.sh
bash run_tests.sh
lm_inference_test.py的测试可能报错
numericals.py
的第705行,如果是
(a, b, c), *ps = points
要改成
a, b, c, *ps = points
四、运行
直接修改run.sh
的代码部分
# !/bin/bash
set -e
set -x
# virtualenv -p python3 .
source ./bin/activate
# pip install --require-hashes -r requirements.txt
# gdown --folder https://bit.ly/alphageometry
DATA=ag_ckpt_vocab
MELIAD_PATH=meliad_lib/meliad
# mkdir -p $MELIAD_PATH
# git clone https://github.com/google-research/meliad $MELIAD_PATH
export PYTHONPATH=$PYTHONPATH:$MELIAD_PATH
DDAR_ARGS=(
--defs_file=$(pwd)/defs.txt \
--rules_file=$(pwd)/rules.txt \
);
BATCH_SIZE=2
BEAM_SIZE=2
DEPTH=2
SEARCH_ARGS=(
--beam_size=$BEAM_SIZE
--search_depth=$DEPTH
)
LM_ARGS=(
--ckpt_path=$DATA \
--vocab_path=$DATA/geometry.757.model \
--gin_search_paths=$MELIAD_PATH/transformer/configs \
--gin_file=base_htrans.gin \
--gin_file=size/medium_150M.gin \
--gin_file=options/positions_t5.gin \
--gin_file=options/lr_cosine_decay.gin \
--gin_file=options/seq_1024_nocache.gin \
--gin_file=geometry_150M_generate.gin \
--gin_param=DecoderOnlyLanguageModelGenerate.output_token_losses=True \
--gin_param=TransformerTaskConfig.batch_size=$BATCH_SIZE \
--gin_param=TransformerTaskConfig.sequence_length=128 \
--gin_param=Trainer.restore_state_variables=False
);
echo $PYTHONPATH
python -m alphageometry \
--alsologtostderr \
--problems_file=$(pwd)/examples.txt \
--problem_name=orthocenter \
--mode=alphageometry \
"${DDAR_ARGS[@]}" \
"${SEARCH_ARGS[@]}" \
"${LM_ARGS[@]}"
注释掉几行就可以了
第21-23行与辅助线有关,可以自己看README,简单题目这个数据应该够了
第50-51行与题目有关
problems_file为题目集的位置(用绝对路径)
problem_name为题目的名称
最后只要输入以下命令就行了
bash run.sh
转载请注明出处