diff --git a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/AccuracyLeftPanel.tsx b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/AccuracyLeftPanel.tsx index 71682214de9357fb2a757ff7d84ac4a47cd471ab..3217081ade32a043265f2ac1d98008c14a4148ba 100644 --- a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/AccuracyLeftPanel.tsx +++ b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/AccuracyLeftPanel.tsx @@ -41,6 +41,10 @@ interface IProps { const LOSS_REG_EXP = /[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/ // 匹配自然数 const ITER_REG_EXP = /\d+/ +// 单个文件最大大小 +const FILE_MAX_SIZE = 10 * 1024 * 1024 +// 最大文件上传数量 +export const MAX_FILE_COUNT = 6 const useStyles = makeStyles(() => ({ root: { @@ -106,8 +110,6 @@ const useStyles = makeStyles(() => ({ } })) -// 最大文件上传数量 -export const MAX_FILE_COUNT = 6 export const AccuracyLeftPanel: React.FC = (props) => { const { onChangeCheckedFileList, onChangeUploadedCount } = props const classes = useStyles() @@ -122,10 +124,8 @@ export const AccuracyLeftPanel: React.FC = (props) => { file.losses = [] const lines = file.fileContent.split(/\r\n|\n|\r/) for (let i = 0; i < lines.length; i++) { - const iter = file.useIterRegex ? parseByRegex(lines[i], file.iterTag, false) - : parseByTag(lines[i], file.iterTag, false) - const loss = file.useLossRegex ? parseByRegex(lines[i], file.lossTag, true) - : parseByTag(lines[i], file.lossTag, true) + const iter = parseByTag(lines[i], file.iterTag, false) + const loss = parseByTag(lines[i], file.lossTag, true) if (iter !== null && loss !== null) { file.iters.push(iter) file.losses.push([iter, loss]) @@ -135,19 +135,6 @@ export const AccuracyLeftPanel: React.FC = (props) => { return file } - const parseByRegex = (line: string, regex: string, isLoss: boolean): number | null => { - let result: number | null = null - const res = new RegExp(regex).exec(line) - if (res !== null) { - if (isLoss) { - result = parseFloat(res[0]) - } else { - result = parseInt(res[0]) - } - } - return result - } - const parseByTag = (line: string, tag: string, isLoss: boolean): number | null => { let pos = line.indexOf(tag) let result: number | null = null @@ -175,6 +162,13 @@ export const AccuracyLeftPanel: React.FC = (props) => { setImportSpin(true) const file = e.target.files?.[0] if (file) { + if (file.size > FILE_MAX_SIZE) { + message.warn('Sorry, the file size cannot be greater than 10MB.') + setImportSpin(false) + // 防止同名文件不触发事件 + e.target.value = '' + return + } const reader = new FileReader() reader.onload = ((selectedFile) => { return (e) => { @@ -210,11 +204,9 @@ export const AccuracyLeftPanel: React.FC = (props) => { id: fileList.length, fileName: fileName, fileContent, - checked: false, + checked: true, lossTag: 'loss:', - useLossRegex: false, iterTag: 'iteration', - useIterRegex: false, iters: [], losses: [], iterLosses: {} diff --git a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/RegexConfigModal.tsx b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/RegexConfigModal.tsx index 4613421053b14b6c3bf372c7736312ac6092cefa..0a28adb65a373ebd8b09516ca5be985abaaf1132 100644 --- a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/RegexConfigModal.tsx +++ b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/RegexConfigModal.tsx @@ -63,25 +63,15 @@ export const RegexConfigModal: React.FC = (props) => { const classes = useStyles() const [lossTag, setLossTag] = useState(props.file.lossTag) const [iterTag, setIterTag] = useState(props.file.iterTag) - const [lossRegex, setLossRegex] = useState(props.file.useLossRegex) - const [iterRegex, setIterRegex] = useState(props.file.useIterRegex) const lossTagChange = (e: React.ChangeEvent) => { setLossTag(e.target.value) } - const lossRegexChange = (e: CheckboxChangeEvent) => { - setLossRegex(e.target.checked) - } - const iterTagChange = (e: React.ChangeEvent) => { setIterTag(e.target.value) } - const iterRegexChange = (e: CheckboxChangeEvent) => { - setIterRegex(e.target.checked) - } - const configModalOk = () => { if (lossTag.trim() === '') { message.warning('Loss Tag cannot be empty or only spaces!') @@ -91,16 +81,13 @@ export const RegexConfigModal: React.FC = (props) => { message.warning('Iteration Tag cannot be empty or only spaces!') return } - if (lossTag === props.file.lossTag && iterTag === props.file.iterTag - && lossRegex === props.file.useLossRegex && iterRegex === props.file.useIterRegex) { + if (lossTag === props.file.lossTag && iterTag === props.file.iterTag) { props.onCancel() } else { const configFile: FileInfo = { ...props.file, lossTag, - iterTag, - useLossRegex: lossRegex, - useIterRegex: iterRegex + iterTag } props.onOk(configFile) } @@ -114,18 +101,16 @@ export const RegexConfigModal: React.FC = (props) => { open centered maskClosable={false} - width={560} + width={480} className={classes.root} >
Loss Tag - Regex
Iteration Tag - Regex
) diff --git a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/entity.ts b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/entity.ts index bebfbe316801aca7043363a8e12951a576c40da1..0a0a1ee4b28661799aea5a9233c4f3a90f4a251e 100644 --- a/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/entity.ts +++ b/plugins/tensorboard-plugins/tb_plugin/fe/src/components/Accuracy/entity.ts @@ -23,9 +23,7 @@ export interface FileInfo { fileContent: string checked: boolean lossTag: string - useLossRegex: boolean iterTag: string - useIterRegex: boolean iters: number[] losses: number[][] iterLosses: { [iter: number]: number }